Compare commits

..
6309 Commits
Author SHA1 Message Date
jan.nijtmans 59248c33fa Fix [61ba0b0661]: platform::identify broken on Red Hat Linux 2026-09-09 12:13:27 +00:00
jan.nijtmans bfcda554c0 Sometimes, on macOS, 15/20 minutes are not enough to run all testcases 2026-09-08 10:17:20 +00:00
jan.nijtmans 6ebdd5f383 Sometimes, on macOS, 15/20 minutes are not enough to run all testcases 2026-09-08 10:14:10 +00:00
jan.nijtmans a8037e8df7 burnett01/rsync-deployments -> 9.0.1 2026-09-07 20:24:07 +00:00
jan.nijtmans 81914ec871 burnett01/rsync-deployments -> 9.0.1 2026-09-07 20:13:26 +00:00
dkf 166190ee63 More efficient memory handling inside ensembles 2026-09-07 14:00:05 +00:00
dkf 4614eaeb6c Fix some technically-possible memory leaks in [scan] 2026-09-07 13:53:43 +00:00
jan.nijtmans faaa406022 Cherrypick some trivial doc changes from tip-700 branch 2026-09-07 11:37:34 +00:00
sebres 4b7e30ceb8 merge 9.0 (CI-flow: refactor MSVC initialization and allow manual trigger of flow) 2026-09-04 14:31:27 +00:00
sebres b84b1b5a87 CI-flow: refactor MSVC initialization:
removed 3rd party action ilammy/msvc-dev-cmd; silence deprecation warning;
the step would use vcvarsall.bat in cmd shell and put the vc-vars to default ENV
2026-09-04 14:28:50 +00:00
sebres 68724b1f43 allow manual trigger of flow (independently on branch/tag name) 2026-09-04 14:20:36 +00:00
sebres 0c934cf5e4 merge 9.0: fix for segfault [e533296a92d89044]: avoid reset of lambda info in frames stack by nested calls; create cmdPtr once by first apply (conversion to lambda), so besides the fix it'd also get better performance 2026-09-02 19:56:45 +00:00
sebres 57aa93435e amend to [a8133670760aa4a8]: added missing initialization for flags in DuplicateProc (doesn't exist in 8.6) 2026-09-02 11:19:59 +00:00
dkf b6a04ef4e8 Clean up grapheme command a bit. Verified that it can be exposed in a safe interp 2026-09-02 08:52:55 +00:00
sebres b364073019 merge 8.6: amend to [e533296a92d89044], fixes [f6afe6b71d26e111]: same logic of lamda command init in disassemble; code simplification 2026-09-01 21:45:41 +00:00
sebres 2d5c6c16be small amend 2026-09-01 21:38:35 +00:00
sebres 035195b0f4 amend to [e533296a92d89044], fixes [f6afe6b71d26e111]: same logic of lamda command init in disassemble; code simplification 2026-09-01 21:16:44 +00:00
sebres a8897e0ba2 merge 8.6: ultimate fix for segfault [e533296a92d89044]: avoid reset of lambda info in frames stack by nested calls; create cmdPtr once by first apply (conversion to lambda), so besides the fix it'd also get better performance 2026-09-01 11:01:29 +00:00
sebres a69a6190a7 ultimate fix for segfault [e533296a92d89044]: avoid reset of lambda info in frames stack by nested calls;
merged branch bug-e533296a92-sebres-optimized - create cmdPtr once by first apply (conversion to lambda), so besides the fix it'd also get better performance
2026-09-01 10:32:56 +00:00
sebres 858697b6f6 new apply test (covering shimmer of lambda during its evaluation, similar to regexp-27.8) 2026-09-01 10:24:56 +00:00
sebres 182a8a6fbc merge fix for [e533296a92d89044] from 8.6: reset cmd in procPtr after lambda invocation; avoid reset of lambda info in frames stack by nested calls (till it is still evaluated) - fill this info and reset the artificial command only once (at parent invocation); new tests added 2026-08-31 21:35:39 +00:00
sebres 56e27b0e1a fixes [e533296a92d89044]: reset cmd in procPtr after lambda invocation; avoid reset of lambda info in frames stack by nested calls (till it is still evaluated) - fill this info and reset the artificial command only once (at parent invocation); new tests added 2026-08-31 21:07:14 +00:00
sebres f837143bc6 tests/apply.test: cherry-picked test from optimized branch 2026-08-31 21:03:24 +00:00
sebres 6006931fc9 real refcounting for owned procPtr->cmdPtr of lambda 2026-08-31 20:53:08 +00:00
sebres b793c0c17e amend (added init for var res) 2026-08-31 15:45:33 +00:00
jan.nijtmans fb558e4cef Doc fixes, backported from TIP 700 branch 2026-08-31 09:02:59 +00:00
dkf 5cf20f48c5 Spruce up tclIO.c in a few spots 2026-08-30 11:30:08 +00:00
oehhar 993a28d8cf [04d1d40a] correct expr ?: documentation (9.0 and main) 2026-08-29 09:14:26 +00:00
oehhar b43e7aec44 [04d1d40a] correct expr ?: documentation (9.0 and main) 2026-08-29 09:12:05 +00:00
sebres ffc0435a28 more tests, reset cmdPtr->nsPtr after reference decrement (in case if NS is dead) 2026-08-28 13:06:27 +00:00
jan.nijtmans e76f229b4a Fix [17960b80db]: Missing libtcl?.?.dll.a in Cygwin 2026-08-28 12:24:47 +00:00
sebres fd88611502 workaround for OO, differentiating cmdPtr between OO and lamda (lamdas procPtr owns cmdPtr now), no failing tests anymore 2026-08-27 22:25:14 +00:00
sebres d594f54dc8 small amend referencing nsPtr in lambda command (don't allow eval of lamdas in dead namespaces); todo: check effect on OO (also used ExtraFrameInfo) 2026-08-27 21:46:24 +00:00
sebres a8e53c3cea experimental: try to optimize lambda invocation (apply, frame info, TIP #280, etc) 2026-08-27 21:01:09 +00:00
sebres 5fd3c575fe backport the idea [a7a8993cca8e49c9] from 8.5 as NRE-capable version: fill this info and reset the artificial command only once (at parent invocation, bypass nested invokations); test adjusted to cover it. 2026-08-27 17:53:32 +00:00
jan.nijtmans 20b4abd9b3 Merge-mark 2026-08-27 15:08:07 +00:00
jan.nijtmans cf48dad3e5 chw's proposed patch for [e533296a92] 2026-08-27 14:57:52 +00:00
jan.nijtmans c503cda4f3 Formatting, missing sentinels 2026-08-27 14:36:37 +00:00
jan.nijtmans a414f1623d Update utf8proc.c for Unicode 18. Most GraphemeBreakTest testcases now pass. Only 4 fail, those are disabled for now 2026-08-25 12:07:36 +00:00
jan.nijtmans 72df45e415 Disable io-29.26 run in CI environment. Needs further investigation 2026-08-25 07:32:26 +00:00
jan.nijtmans 6d9e3b4ad1 Disable io-29.26 run in CI environment. Needs further investigation 2026-08-25 07:31:19 +00:00
jan.nijtmans b76f280e26 Update CI build to ubuntu-26.04 2026-08-24 17:59:10 +00:00
jan.nijtmans 933ffa5c9e Update to latest unicode 18 tables 2026-08-24 17:53:42 +00:00
jan.nijtmans 0b11f59ff8 Update testcases too 2026-08-24 17:51:57 +00:00
jan.nijtmans cc9383a9d7 Update to latest Unicode 18 tables 2026-08-24 16:38:37 +00:00
jan.nijtmans c1cd785155 Update CI build to ubuntu-26.04 (except for onefiledist) 2026-08-24 14:27:45 +00:00
Phil Brooks 327f57a896 update tclsh.svg to new Tcl logo 2026-08-23 19:30:21 +00:00
Phil Brooks c9dc381ce1 update tools/tclsh.svg to new logo 2026-08-20 16:26:52 +00:00
jan.nijtmans ec80057640 Fix [e4c24e86b5]: timer documentation typos 2026-08-20 12:12:27 +00:00
jan.nijtmans 499636ce45 Fix [e4c24e86b5]: documentation typos 2026-08-20 12:09:20 +00:00
jan.nijtmans b874a90ed8 Fix [99717117b7]: warnings when compiling with Clang ucrt64 2026-08-20 11:57:42 +00:00
apnadkarni c797510ff8 Merge 9.0. Previous fix for exec output encoding docs was incomplete 2026-08-20 09:48:52 +00:00
apnadkarni cfba261e9b Previous fix for exec output encoding docs was incomplete 2026-08-20 09:47:43 +00:00
apnadkarni 9b594af80e Merge 9.0. Fix explanation of exec -encoding option (thanks, @Schelte) 2026-08-20 03:10:09 +00:00
apnadkarni 18bc584b71 Fix explanation of exec -encoding option (thanks, @Schelte) 2026-08-20 03:08:39 +00:00
jan.nijtmans 5a55adba96 Fix [e4c24e86b5]: timer documentation typos 2026-08-18 15:42:46 +00:00
jan.nijtmans de448b8063 Fix [4bd630]: --without-tzdata on windows 2026-08-18 12:50:01 +00:00
jan.nijtmans 54b5091646 Fix [4bd630]: --without-tzdata on windows 2026-08-18 12:44:06 +00:00
Phil Brooks 5c77a3bdea Update Windows icon to new Tcl 9 logo 2026-08-16 23:55:16 +00:00
apnadkarni 64c1a87b5f Constraint console-bug-f10d91c2 test to 64-bit as triggering powershell script does not run on 32-bit Windows 2026-08-15 10:42:08 +00:00
apnadkarni 703cac60dc Fix failure of package require registry on --disable-zipfs builds 2026-08-15 09:51:24 +00:00
dkf 696e11a42b A few more places where we can use faster string concatenation. Makes the code a little less clear. 2026-08-14 06:52:30 +00:00
dkf 2b273fdd1d Another place where we can use a faster string construction technique 2026-08-14 06:34:42 +00:00
dkf 192100fcbc Add caching of the delegate class name. 2026-08-13 14:05:36 +00:00
dkf 099ec2c204 Centralise the generation of delegate class names for better comprehensibility 2026-08-12 08:35:03 +00:00
dkf 2e1a047090 Another performance improvement for properties: faster string building in the resolver wrapper 2026-08-12 07:33:12 +00:00
apnadkarni c3e4bc8b5e Merge 9.0. Fix [4676f5c78] - corrupted elements from glob -dir . in zipfs 2026-08-11 13:52:16 +00:00
apnadkarni 844399a2db Fix [4676f5c78] - corrupted elements from glob -dir . in zipfs 2026-08-11 13:30:19 +00:00
apnadkarni 5b7fa7a4e4 Merge 9.0 2026-08-10 13:20:24 +00:00
jan.nijtmans dc810f6e15 Fix [d5acb07b6411]: TIP 752 broke [clock seconds] in 32bit linux. (see remark in ticket) 2026-08-10 09:59:49 +00:00
jan.nijtmans 52d1487dfb Consolidate use of ©. Indenting 2026-08-10 09:58:38 +00:00
dkf 085a472096 Add an internal caching mechanism to make property access a bit faster 2026-08-10 08:51:42 +00:00
jan.nijtmans 3d319623b1 tzdata updated to Olson's tzdata2026c 2026-08-10 07:40:31 +00:00
jan.nijtmans e08a1229b3 tzdata updated to Olson's tzdata2026c 2026-08-10 07:39:25 +00:00
jan.nijtmans 875a2e91a1 tzdata updated to Olson's tzdata2026c 2026-08-10 07:36:00 +00:00
Phil Brooks 44d4d7b3c1 Use new Tcl9 Logo in win/tclsh.ico 2026-08-10 05:42:15 +00:00
apnadkarni 8d614c2557 Proposed fix for [4676f5c78] and more tests 2026-08-08 08:57:13 +00:00
apnadkarni 663055bebf Bug [4676f5c78] - add tests to reproduce reported defect 2026-08-08 06:06:00 +00:00
Emiliano Gavilán 050c4d7893 Proposed fix for bug [d5acb07b6411] 2026-08-02 22:30:24 +00:00
apnadkarni b229566362 Fix [6e82720e] - BUFFER_PADDING panic on 4294967296 chars read 2026-08-02 08:11:39 +00:00
apnadkarni 7be1b1e4fc Further 32-bit fixes. 2026-08-02 05:54:49 +00:00
apnadkarni 07e9a2cacf Proposed fix for [6e82720e14]. 2026-07-29 06:43:14 +00:00
apnadkarni 22b4ebf324 Add tests to recreate [6e82720e] without creating large files on disk 2026-07-29 05:40:50 +00:00
apnadkarni 0028fbcee2 Merge 9.0. Fix [d40d8db3]. Path normalization on Windows ACL-denied directory 2026-07-16 12:21:40 +00:00
apnadkarni b836bf581c Update changes.md for 2 bug fixes 2026-07-16 11:52:24 +00:00
apnadkarni 17e820f0ca Fix [d40d8db3]. Path normalization on Windows ACL-denied directory 2026-07-16 11:41:02 +00:00
apnadkarni 70fe052802 Fix MinGW warnings 2026-07-16 11:12:54 +00:00
apnadkarni 44c69cacd5 Enable test on CI. Add Unicode variant 2026-07-16 03:08:26 +00:00
apnadkarni f235a234ec Proposed fix for ACL-denied normalization 2026-07-15 17:03:05 +00:00
apnadkarni 89ea8429f7 Add test to prove presence of bug 2026-07-15 11:34:17 +00:00
apnadkarni 4cc7636fbf Add infrastructure for bug reproduction 2026-07-15 08:26:13 +00:00
apnadkarni e26ee8c21a Add missing 9.1 TIP's to changes.md 2026-07-14 16:43:03 +00:00
apnadkarni fde078cd06 Merge 9.0 - Fix [f10d91c2] - dead console busy loop 2026-07-14 16:31:39 +00:00
apnadkarni a43ca1fd70 Fix [f10d91c2] - dead console busy loop 2026-07-14 16:27:00 +00:00
jan.nijtmans 6bcc3de72a platform -> 1.2b1 2026-07-14 14:26:36 +00:00
jan.nijtmans c638ab49c1 Fix [61ba0b0661]: platform::identify broken on Red Hat Linux 2026-07-14 14:03:14 +00:00
jan.nijtmans 68277f984d Fix [61ba0b0661]: platform::identify broken on Red Hat Linux 2026-07-14 13:41:38 +00:00
apnadkarni aa1da06ab1 Added TIP 755 to changes.md 2026-07-14 11:39:35 +00:00
jan.nijtmans 78fd0d7c79 This should work on RHEL too 2026-07-14 10:16:19 +00:00
jan.nijtmans 70ca43b027 Merge-mark 2026-07-14 08:24:20 +00:00
jan.nijtmans 91685c65b4 Backout fix for [917c4a896a]. Let the improved fix land on 9.1, it can always be backported later 2026-07-14 08:22:09 +00:00
jan.nijtmans c9f88cfebb Fix [61ba0b0661]: platform::identify broken on Red Hat Linux. Now also works with musl 2026-07-14 08:06:54 +00:00
jan.nijtmans dc523fc365 Attempt to make it work with MUSL 2026-07-14 08:00:19 +00:00
apnadkarni 6aa24c8ca3 Create new branch named "bug-d40d8db3" 2026-07-14 06:52:56 +00:00
jan.nijtmans 98187fcbfe Proposed fix for [61ba0b0661]. Just detect glibc/musl, no version number 2026-07-13 12:08:24 +00:00
apnadkarni 45bbff6820 Add test case. Thanks @JulianNoble for repro script 2026-07-13 11:47:22 +00:00
jan.nijtmans 9d5f272c17 Fix [6ae6c13b18]: Warning: argument 1 of 'Tcl_SetPanicProc' might be a candiate for a format attribute 2026-07-13 11:15:23 +00:00
jan.nijtmans aa49dc2501 Fix [6ae6c13b18]: Warning: argument 1 of 'Tcl_SetPanicProc' might be a candiate for a format attribute 2026-07-13 11:14:29 +00:00
apnadkarni 8f9a8b9f45 Slightly clearer wording in console test prompts 2026-07-13 10:43:45 +00:00
jan.nijtmans 13bfda9233 Fix [6ae6c13b18]: Warning: argument 1 of 'Tcl_SetPanicProc' might be a candiate for a format attribute 2026-07-13 10:14:45 +00:00
apnadkarni e59fdf4d22 Include check for error conditions in generating Windows file events 2026-07-13 07:16:37 +00:00
jan.nijtmans 577e8eed1f Fix [2759868527]: File tcltest-2.5.11.tm provides package version nr. 2.6.0 2026-07-12 20:38:37 +00:00
apnadkarni 620201f768 Create new branch named "bug-f10d91c2" 2026-07-12 12:42:39 +00:00
apnadkarni 914b7d5eb4 Bug [9594d5a0] - non-default nmake builds 2026-07-12 10:56:22 +00:00
apnadkarni 7af0494ef1 merge main 2026-07-12 10:53:33 +00:00
apnadkarni 3bc3d61222 Fix broken manifest (GH CI failure) inclusion. Need to include winuser.h else CREATEPROCESS_MANIFEST_RESOURCE_ID gets treated as a string id. This was previously hidden due to overwriting with mt.exe 2026-07-10 11:48:52 +00:00
apnadkarni ad4c16a445 Fix nmake builds of Tcl/Tk in non-default directories 2026-07-10 09:29:21 +00:00
jan.nijtmans da381a2859 Manifest is already in rc, so no need to run mt tool 2026-07-10 08:20:46 +00:00
apnadkarni 7ba409f546 Delete extraneous puts in winFCmd.test 2026-07-09 16:12:34 +00:00
apnadkarni eb99ec4583 Added tcl::unsupported::grapheme command 2026-07-09 11:08:21 +00:00
jan.nijtmans 351d7f7c1c Fix [917c4a896a]: Glibc detection broken on Linux for platform::identify 2026-07-09 10:34:47 +00:00
apnadkarni f49614d8e0 Remove obsolete prototypes 2026-07-09 10:32:40 +00:00
jan.nijtmans 0d769c079e Fix [917c4a896a]: Glibc detection broken on Linux for platform::identify 2026-07-09 10:31:38 +00:00
jan.nijtmans 665742245e Massive simplifcation 2026-07-09 10:24:46 +00:00
apnadkarni 4bf1046fbb Merge main 2026-07-09 10:20:18 +00:00
apnadkarni d7458ecfbb Remove unused placeholder compilers 2026-07-09 10:01:20 +00:00
apnadkarni f4b5524b41 Add Unicode 17 grapheme tests 2026-07-09 09:40:43 +00:00
apnadkarni b59d1f6138 Lazy load auto_execok 2026-07-09 08:13:26 +00:00
apnadkarni 664457d046 Avoid use of tclIndex in case code checks for auto_execok existence 2026-07-09 04:15:16 +00:00
jan.nijtmans 955edbe38d Attempt to fix [917c4a896a]: Glibc detection broken on Linux for platform::identify 2026-07-08 15:06:51 +00:00
jan.nijtmans bfa682d1be Sounds like good idea (thanks), just don't forget to commit the new file too ;-) 2026-07-08 14:27:45 +00:00
apnadkarni 22584de211 Load auto_execok lazily. Cuts interp creation time by more than 15% 2026-07-08 13:52:33 +00:00
apnadkarni ce316d8ed7 Merge trunk 2026-07-08 07:42:21 +00:00
jan.nijtmans 9857af9cd8 Undo changes in rules.vc/targets.vc, since extensions might use it 2026-07-07 11:14:16 +00:00
jan.nijtmans 76769b9071 Manifest is already in rc, so no need to run mt tool 2026-07-07 07:19:16 +00:00
jan.nijtmans bdc2817db0 No need to worry about Windows 8.1 any more 2026-07-06 11:14:30 +00:00
sebres 1a4393e539 fixes [6f8bbbb34bf84bf0] hang in BSD/kqueue: fixed infinite wait for kqueue (0 is smallest timeout, negative time is no timeout), similar to other notifiers implementations, see [def988e9cd676b5b] 2026-07-04 18:17:02 +00:00
apnadkarni 7a06379184 Merge mark 2026-07-04 08:26:18 +00:00
apnadkarni fcf2c0146a Fix [59cc110f]. Manually verified but no test case as it involves the root directory 2026-07-04 08:25:35 +00:00
apnadkarni 7d3fd1055c Fix [59cc110f]. Manually verified but no test case as it involves the root directory 2026-07-04 08:17:43 +00:00
apnadkarni 6ba84df246 Move grapheme command to tcl::unsupported for 9.1 2026-07-01 17:25:39 +00:00
apnadkarni ea18874265 Create new branch named "tip-756-91" 2026-07-01 16:34:02 +00:00
apnadkarni a412b42219 Merge main 2026-07-01 16:29:43 +00:00
jan.nijtmans 471e63e56f Version -> 9.0.5 for next release cycle 2026-07-01 13:44:13 +00:00
jan.nijtmans f858a0cbf3 Version -> 9.1b1 for next release cycle 2026-06-30 15:44:13 +00:00
jan.nijtmans 4dc2735186 Merge 9.0 2026-06-30 14:48:02 +00:00
jan.nijtmans a182758520 Merge-mark 2026-06-30 14:44:36 +00:00
dgp 792695f1aa merge release 2026-06-30 14:28:44 +00:00
jan.nijtmans bb853f8e3a Fix [f04e9b1304]: Crash in Tcl_UtfToUpper/Lower/Title on a genuine 4-byte UTF-8 character 2026-06-30 12:18:22 +00:00
jan.nijtmans 60696ce81b Missing include 2026-06-30 12:16:32 +00:00
jan.nijtmans c61fb83e3a Fix [fcd3dadd79]: format honours LC_NUMERIC for %f/%g, producing numbers Tcl cannot parse 2026-06-30 11:44:00 +00:00
jan.nijtmans 7f6d8bc80e Update changes 2026-06-30 11:41:36 +00:00
jan.nijtmans b17dbcdd3b Fix [fcd3dadd79]: format honours LC_NUMERIC for %f/%g, producing numbers Tcl cannot parse 2026-06-30 11:39:02 +00:00
jan.nijtmans fe1b58230e Update to burnett01/rsync-deployments@9.0.0 2026-06-30 08:39:41 +00:00
dgp fbe83207a7 merge trunk 2026-06-28 15:12:32 +00:00
dgp a8d0827f70 merge mark 2026-06-28 15:10:39 +00:00
dgp 400cc68151 Post-release resolution of test name between 9.0 and 9.1 branches 2026-06-26 19:06:58 +00:00
dgp 63bcd1c049 Bring test suite fixes over from the RC branch 2026-06-26 18:59:49 +00:00
dgp 5cc4b2512e merge release 2026-06-26 18:29:49 +00:00
dgp 37374ee339 merge trunk 2026-06-25 15:32:14 +00:00
dgp c655b4770b merge 9.0 2026-06-25 15:31:36 +00:00
apnadkarni ef326dedb9 Merge main 2026-06-25 11:20:21 +00:00
apnadkarni 0c0bd807ae Add test cases for empty strings 2026-06-25 11:19:39 +00:00
apnadkarni 32412ee230 Implement grapheme offset 2026-06-25 10:58:30 +00:00
jan.nijtmans 08fbb6a2b5 Merge 9.0. Indenting 2026-06-25 10:52:45 +00:00
jan.nijtmans 4bb172da1b Update changes.md 2026-06-25 10:47:27 +00:00
apnadkarni 3e8bce3b3f Fix [b48a676684] - latent memory leak. Not a showstopper for 9.1 beta 2026-06-25 10:18:43 +00:00
dkf bf0a9496cd Shorter and clearer script via [try] 2026-06-25 08:14:59 +00:00
apnadkarni 19460220f2 Fix const warnings 2026-06-25 06:48:30 +00:00
apnadkarni 303a5431e8 Latent memory leak in abstract list string generation 2026-06-25 06:46:53 +00:00
apnadkarni e116c9af11 Implement grapheme split command and GraphemeList 2026-06-25 05:37:39 +00:00
dkf 50a292633e [9563b8eeec] Add test case with very compressible data 2026-06-24 15:40:16 +00:00
dgp d1b65c6354 merge trunk 2026-06-24 14:07:12 +00:00
jan.nijtmans 685c45cf51 Dde version -> 1.5b0. Don't use tcl version as registry version. 2026-06-24 10:06:59 +00:00
jan.nijtmans 5c187e3fb3 Make it (at least) compile with Makefile.in too 2026-06-24 09:33:17 +00:00
dgp d7aeb043ef merge 9.0 2026-06-23 19:27:23 +00:00
dgp 3ac46d817b merge trunk 2026-06-23 14:42:40 +00:00
apnadkarni e69ee6b528 grapheme range,reverse 2026-06-23 11:04:17 +00:00
jan.nijtmans 1afc8936a9 Update utf8proc_data.c 2026-06-23 08:33:26 +00:00
apnadkarni 8eed2915a1 end-1 should use grapheme counts! 2026-06-23 05:21:41 +00:00
jan.nijtmans c4ec70596e actions/checkout@v6 -> v7 2026-06-22 22:11:16 +00:00
jan.nijtmans 66de0e7eee actions/checkout@v6 -> v7 2026-06-22 22:03:46 +00:00
dgp b159d667f6 test hygiene: file lifetime 2026-06-22 21:10:57 +00:00
dgp df92b05127 merge trunk 2026-06-22 20:51:47 +00:00
apnadkarni 16e765fe97 grapheme length, index 2026-06-22 17:09:54 +00:00
jan.nijtmans 919e9a5f97 Re-generate utf8proc_data with the latest Unicode 18 (still beta) tables 2026-06-22 14:00:40 +00:00
dkf 1cfaa53923 Minor change: Some more indentation corrections 2026-06-21 16:33:06 +00:00
apnadkarni 22ff4d3b8d Passes Unicode 17.0 test vectors, still has 18.0 failures as utf8proc is not actually Unicode 18.0 compliant 2026-06-21 16:01:21 +00:00
apnadkarni ff6179125f Merge main 2026-06-21 00:08:43 +00:00
dkf 9459aca51d Minor change: More tab/space fixes 2026-06-20 20:13:15 +00:00
apnadkarni 3fd1de184a Add tests using grapheme test vectors from UCD. 1646 pass 60 fail. Hangul, RI, LinkingConsonants, Vedic scripts 2026-06-20 17:02:39 +00:00
dkf eb966713f4 Minor change: Fix up some wayward tabs 2026-06-20 14:47:56 +00:00
apnadkarni a6543dd593 Base implementation of grapheme prev. No support for Hangul, RI etc. 2026-06-20 10:01:28 +00:00
apnadkarni bfbba66920 Would help to add the actual code 2026-06-19 17:36:05 +00:00
apnadkarni 09fb723c51 Skeleton for grapheme next 2026-06-19 17:35:22 +00:00
dgp 437c6c59b0 file lifetime hygiene
(Can't create files in general setting, then cleanup in constrained setting)
2026-06-18 19:26:21 +00:00
dgp 776d3e36c1 Duplicate test names 2026-06-18 19:12:59 +00:00
dgp 01afb8d2fb Duplicate test name 2026-06-18 18:22:51 +00:00
dgp 559c4ce2e3 duplicate test names 2026-06-18 18:21:27 +00:00
dgp 9bb0a77f14 File lifetime management hygiene 2026-06-18 18:18:45 +00:00
dgp 7ae8a23faa Conflict over variable name "id" between tests oo-16.16 and timer-2.1.1 2026-06-18 18:08:44 +00:00
dgp 2b40d76107 Duplicate test name 2026-06-18 17:56:30 +00:00
dgp b8fa37b5a6 merge trunk 2026-06-18 17:05:53 +00:00
jan.nijtmans 2dcb7fb76b Make tclTest.c compile with c++ (again) 2026-06-18 15:03:48 +00:00
jan.nijtmans 7f888b3485 Spacing 2026-06-18 14:56:35 +00:00
dgp 6353ba4f82 merge trunk 2026-06-17 18:12:35 +00:00
apnadkarni e092debb7b Create new branch named "apn-graphemes" 2026-06-17 12:47:14 +00:00
apnadkarni 064dc2f13e changes.md - Note performance improvements 2026-06-17 12:46:39 +00:00
dkf 5497d7d71b Use Tcl_GetInt instead of atoi to get consistent integer handling rules 2026-06-16 16:11:03 +00:00
Torsten 7968cfe7b2 (ticket [a127bf6415cbfa]) removed the duplicate documentation of auto_path from library.n and inserted a reference to tclvars.n instead 2026-06-16 13:32:49 +00:00
jan.nijtmans cb1a6a9526 Eliminate compiler warning, seen on Cygwin 2026-06-16 07:38:19 +00:00
jan.nijtmans 4c7c8c41c0 Fix 'make html' warning: process-text: impotent font change 2026-06-14 16:10:07 +00:00
dkf 8164c59772 Corrections to lgen and function naming in the testing abs-list code 2026-06-14 15:18:42 +00:00
dkf 8cab375e3e Proper indentation of function formal args 2026-06-13 16:05:42 +00:00
dkf 69d261d32f Indentation corrections 2026-06-13 15:56:32 +00:00
apnadkarni 5e95ace15d Fix gcc warnings about jumps around initialization. Bogus but fix nevertheless. 2026-06-13 09:39:11 +00:00
dgp 72c3642ec5 merge 9.0 2026-06-12 20:18:13 +00:00
dgp c7fc281d13 Release branch for Tcl 9.1b0 2026-06-12 19:41:47 +00:00
dgp 391408c53d merge 9.0 2026-06-11 13:04:30 +00:00
dgp ccbb4c0693 [18383c] Fix brace imbalance that broke big portions of the test suite. 2026-06-11 12:57:43 +00:00
jan.nijtmans 78a2986c20 Merge 9.0. No need for 'package require registry' any more 2026-06-11 12:35:49 +00:00
jan.nijtmans e53d6db1ac Fix encoding-31.0 testcase, when windows codepage is utf-8 2026-06-11 12:15:29 +00:00
jan.nijtmans 4ed4fd47da Use more tcl::registry, when possible 2026-06-11 12:05:04 +00:00
oehhar f35096a343 [53a4d960] doc binary scan f endianess correction in example 2026-06-10 07:30:49 +00:00
oehhar 8f7da52298 [53a4d960] doc binary scan f endianess correction in example 2026-06-10 07:29:20 +00:00
apnadkarni a72d84e77c Remove obsolete example. Neither start nor nativename is needed in 9.1 2026-06-10 05:05:47 +00:00
dkf 7b3ea543b0 Small corrections to doc comments 2026-06-08 18:41:52 +00:00
apnadkarni 9d038092c6 Add comment explaining need for path joining code fragment from 2005 2026-06-08 10:17:39 +00:00
dkf 2774c747b5 Tcl_GetInt(3) needed to mention that _ was accepted as 'numeric whitespace' 2026-06-07 15:05:14 +00:00
dkf c3e7c58cd7 Improve documentation comments where they were a bit neglected 2026-06-07 12:04:34 +00:00
apnadkarni 4da5c0bdd8 nmake rules tweaks - add OPTS=verbose option, install extension static libs in same location as Tcl static libs 2026-06-06 02:48:56 +00:00
apnadkarni 3d19071807 Minor tweaks to nmake log messages 2026-06-06 01:19:23 +00:00
jan.nijtmans c1af3498f9 Visual Studio 2026 gives a warning without this /b option 2026-06-04 16:04:40 +00:00
jan.nijtmans 9a9a3b4500 Run the CI build with Visual Studio 2026 2026-06-04 16:03:27 +00:00
jan.nijtmans 098f477b07 Update changes.md 2026-06-04 16:01:01 +00:00
apnadkarni 7244a12bad Add missing -DNDEBUG to nmakehlp build. Silence one more invocation of echo 2026-06-04 06:02:45 +00:00
apnadkarni 984d079606 Install static libraries in same location as Tcl's, not under package directories 2026-06-04 04:28:00 +00:00
apnadkarni ce5a3f18d1 Initialize nmake VERBOSE 2026-06-03 11:41:39 +00:00
jan.nijtmans e06e2ede3e Rebase to trunk, fix copy usage for vs2026 2026-06-03 10:48:58 +00:00
jan.nijtmans 0b9d4e97b0 Sync manifest changes with Tk 2026-06-03 10:28:05 +00:00
apnadkarni 4a872c6bf4 Less verbose nmake output by default. Add OPTS=verbose for old behavior 2026-06-03 08:30:38 +00:00
jan.nijtmans bfb9efd596 TclpGetMicroseconds() doesn't exist any more 2026-06-03 07:51:16 +00:00
jan.nijtmans fe9ee5c3b7 TIP #752: New timer API without Tcl_Time 2026-06-03 07:45:39 +00:00
dgp dfe4b531f7 silence warning about uninitialized paramter. 2026-06-02 17:03:47 +00:00
dgp 7027ad7052 Silence another warning with INT2PTR() 2026-06-02 17:02:03 +00:00
dgp 6cc6830a20 Silence compiler warnings about unused parameters. 2026-06-02 16:58:22 +00:00
apnadkarni a444111b2f Don't prematurely free object needed for error message! 2026-06-02 08:02:34 +00:00
apnadkarni 523fe6b439 Merge TIP 755 Final 2026-06-02 03:16:11 +00:00
apnadkarni 35a1b3c54c Merge main - TIP 755 final 2026-06-02 03:08:08 +00:00
jan.nijtmans da70427327 Re-generate configure scripts (with correct patchlevel) 2026-06-01 13:30:48 +00:00
jan.nijtmans 49a4a1bacc Prepare for Tcl 9.1b0 2026-06-01 13:17:29 +00:00
apnadkarni 676a07f018 Merge main 2026-05-31 06:02:25 +00:00
apnadkarni 21a59cbbbc Update changes.md for socket crash and tcltest -iterations option 2026-05-29 15:15:24 +00:00
apnadkarni 8f4e1bf7e5 Fix [06f19cc4] - Windows socket crash on thread exit. 2026-05-29 15:06:20 +00:00
apnadkarni c0c027cf31 Add -iterations configuration to tcltest. Bump to 2.6.0 2026-05-29 14:43:17 +00:00
apnadkarni 41086f693e Document tcltest::configure -iterations 2026-05-29 05:31:48 +00:00
apnadkarni 6bb6ac907f Merge apn-tcltest tests 2026-05-29 05:15:02 +00:00
apnadkarni ebc98e9aaf Bump version to 2.6.0. Add tests for -iterations 2026-05-29 05:01:44 +00:00
dgp a7d1547b15 file lifetime testing hygiene 2026-05-28 17:12:07 +00:00
dgp 4564939761 Duplicate test name 2026-05-28 16:55:22 +00:00
dgp b17731c1b4 merge 9.0 2026-05-28 16:42:36 +00:00
jan.nijtmans a9a42f8fcd Merge 9.0. Formatting 2026-05-28 12:13:27 +00:00
apnadkarni b736bbb4a4 Remove knownBug constraint 2026-05-28 11:53:11 +00:00
apnadkarni 6b662da8bd Merge apn-tcltest fixes for info frame 2026-05-28 10:48:42 +00:00
apnadkarni 3d63af2f4a Fix info frame test levels as test proc now adds two levels - uplevel and the TestOnce proc 2026-05-28 10:47:13 +00:00
jan.nijtmans 927d6415a3 Remove (unused, internal) TclListObjAppendIfAbsent functions. Backport formatting from 9.1 2026-05-28 09:30:04 +00:00
apnadkarni 80966bdc8b Proposed fix for [06f19cc401] - Windows sockets segfault 2026-05-28 05:48:36 +00:00
apnadkarni 59bb4e0ef8 Add -iterations to allow running each test multiple times 2026-05-28 01:39:36 +00:00
dgp 34e3813670 merge 9.0 2026-05-27 15:58:22 +00:00
dgp 7988d4dd3e merge mark 2026-05-27 13:54:23 +00:00
dgp 98c3389124 [2a0966cdc9] Give encodings in zip archive priority over past installs. 2026-05-27 13:48:23 +00:00
jan.nijtmans 6947cc76b6 Merge-mark 2026-05-27 10:40:45 +00:00
jan.nijtmans ae67ea5ede Fix [7da6c2d04c]: fileevent poor performance due to shimmering 2026-05-27 10:35:15 +00:00
apnadkarni 4c34c250c2 Prepend zipfs path to encoding dirs instead of appending (related to bug [2a0966cdc9]) 2026-05-27 10:30:08 +00:00
apnadkarni 4c47d86166 Minor refactor 2026-05-27 09:45:51 +00:00
apnadkarni ec2bcb566c Merge main 2026-05-27 09:11:48 +00:00
apnadkarni 0e505f970b Merge 9.0 - Fix [165b1039] - error message for byte arrays 2026-05-27 03:38:06 +00:00
apnadkarni ac38cf507c Fix [165b1039] - error message for byte arrays 2026-05-27 03:35:43 +00:00
apnadkarni 24c750fe99 Fix messages in tests to match new wording 2026-05-27 03:09:28 +00:00
jan.nijtmans 22b6069178 Fix [7da6c2d04c]: fileevent poor performance due to shimmering. Same pattern in a lot of other places 2026-05-26 21:53:12 +00:00
apnadkarni 7fb53c5fc9 Check error before calling post init callbacks 2026-05-26 08:37:33 +00:00
dkf 8b300ead45 Avoid some unnecessary copies; Tcl_NewStringObj copies anyway 2026-05-26 07:19:02 +00:00
apnadkarni e41c753a81 Bug [165b103962] - do not print character on byte array error. 2026-05-25 23:24:10 +00:00
jan.nijtmans e51eee9970 Fix html generation, broken by TIP #745 2026-05-25 22:29:06 +00:00
jan.nijtmans d146c4577e Fix [673f2d]: mind PTHREAD_NULL as sentinel value vs legitimate pthread_t arg 2026-05-25 21:36:14 +00:00
jan.nijtmans f2db52d61b Fix [673f2d]: mind PTHREAD_NULL as sentinel value vs legitimate pthread_t arg 2026-05-25 21:25:59 +00:00
dkf bf9f1bdfe6 More modern way of packing extra stuff into a hash entry 2026-05-25 14:28:54 +00:00
apnadkarni dca82b9e05 Merge main 2026-05-25 11:35:56 +00:00
apnadkarni 0a3a259a4d Merge 9.0 Fix [e860418c] Windows: glob -dir $dir -tail returns name with leading / 2026-05-25 10:59:43 +00:00
apnadkarni 09cca99a2a Fix [e860418c] Windows: glob -dir $dir -tail returns name with leading / 2026-05-25 10:45:35 +00:00
apnadkarni 6d36060125 Fix test reference to env(WINDIR) 2026-05-25 10:26:06 +00:00
apnadkarni 2e28014149 Merge 9.0 - Bug [1215dca7] - inconsistent file join with volume relative arguments 2026-05-25 10:08:54 +00:00
apnadkarni 48da715792 Bug [1215dca7] - inconsistent file join with volume relative arguments 2026-05-25 10:04:11 +00:00
apnadkarni 456e957ebe Minor refactor 2026-05-25 09:47:13 +00:00
apnadkarni 88f91a837a zipfs also supports volume-relative paths and requires a separate check 2026-05-25 04:26:36 +00:00
apnadkarni ff5bc291c5 Bug [1215dca7] - inconsistent file join with volume relative arguments 2026-05-24 12:39:59 +00:00
apnadkarni 45ba8f09bf Update changes.md 2026-05-24 11:55:05 +00:00
apnadkarni 9642199be4 Forgot to update changes.md 2026-05-24 11:46:43 +00:00
apnadkarni c5651e2307 Windows: glob -dir $dir -tail returns name with leading / if $dir ends in a \ 2026-05-24 11:16:56 +00:00
apnadkarni b747c94ff8 Fix [c0f678f28c] - Crash in secondary interp on auto_path reinit 2026-05-24 08:47:02 +00:00
apnadkarni 35cdbe0233 Merge 9.0 - Fix [aa6e426437]. nmake shell install does not install shell on a clean build. The !if exist check happened BEFORE the build! and is unnecessary in any case. 2026-05-24 01:37:19 +00:00
apnadkarni 5fa067edf9 Fix [aa6e426437]. nmake shell install does not install shell on a clean build. The !if exist check happened BEFORE the build! and is unnecessary in any case. 2026-05-24 01:33:57 +00:00
apnadkarni 996fbecb44 Fix [c0f678f28c] - Crash in secondary interp on auto_path reinit 2026-05-24 00:10:59 +00:00
apnadkarni ce4f02fff2 Add test for [c0f678f28c] - Crash in secondary interp on auto_path reinit 2026-05-23 17:31:45 +00:00
apnadkarni 7804ffae10 Fix [e55a589d2b] - crash on finalization with another thread active. 2026-05-23 15:15:47 +00:00
apnadkarni 38d2451feb Priorize zipfs location of tcl_library if present 2026-05-23 14:39:48 +00:00
apnadkarni 147f70647a Create new branch named "bug-2a0966cd" 2026-05-23 13:42:28 +00:00
dkf 197226ffca Simplify things slightly in the [dict] and [for] compilers. 2026-05-23 11:21:47 +00:00
bch aa9b12534b PTHREAD_NULL is not _actually_ a valid pthread_t, and should not
be supplied as an argument to pthread_*() functions.

On NetBSD, Tcl was faulting at
  [PMutexDestroy()](/home/file?ci=e29c5206a97aa935207e1b21d33ca&name=unix/tclUnixThrd.c&ln=92)

in the assertion, which failed because PTHREAD_NULL is not actually
a valid thread identifier, did not satisfy the intention what was
trying to be asserted. pthread_t is an opaque type. On NetBSD (for
example) it is a structure, with magic for sanity checks.
"(pthread_t)0" does not pass this test when (e.g.) pthread_equal(t1,
t2) is called. I changed tests for PTHREAD_NULL to simple equality
checks (e.g. PTHREAD_NULL == pmutexPtr->thread), and guarded with
the same test pthread_*() calls where appropriate (those function
calls involving pmutexPtr->thread).
2026-05-23 02:16:41 +00:00
dgp 6210156aef merge 9.0 2026-05-22 16:31:07 +00:00
jan.nijtmans 08e6e3c75d finish 'apn-registry' work for gcc builds. And - as a bonus - for Cygwin too 2026-05-22 15:06:05 +00:00
jan.nijtmans c6aaf8950e Rebase to trunk 2026-05-22 11:02:33 +00:00
jan.nijtmans cd75864d03 Merge 9.0. Prepare for split-off 9.1 branch (not planned yet) 2026-05-22 10:34:35 +00:00
jan.nijtmans 1749ca7ab0 Whitespace changes 2026-05-22 10:26:55 +00:00
apnadkarni df5e66b219 Clarify unload docs as requested in Bug [b823e86fd2]. 2026-05-22 09:59:12 +00:00
jan.nijtmans b37de7b689 Don't build it any more in Github 2026-05-22 09:38:02 +00:00
jan.nijtmans 60744f6e1f Don't build it any more in Github 2026-05-22 09:34:37 +00:00
apnadkarni 086e536dcf Bug [e55a589d2b] - crash on finalization with another thread active. 2026-05-22 08:13:12 +00:00
apnadkarni 08ac206e05 Fix [006bef5d75] - Tcl cannot run from an arbitrary build directory with --disable-zipfs 2026-05-21 08:30:37 +00:00
apnadkarni 9b2a7343ba Merge 9.0 - Fix [b492c33154] - info exists env(xxx) and set env(xxx) are inconsistent after setting to empty string 2026-05-21 08:10:56 +00:00
apnadkarni caee54eda6 Fix [b492c33154] - info exists env(xxx) and set env(xxx) are inconsistent after setting to empty string 2026-05-21 08:07:56 +00:00
apnadkarni cb5ac9be56 Fix [596936dd2d] - auto_execok picks up non-executable files without extensions 2026-05-21 06:54:04 +00:00
apnadkarni a390f3d426 Really no need to change pkgconfig. Revert. 2026-05-21 05:05:29 +00:00
apnadkarni e2edae1809 Only use library from source tree if running in build tree 2026-05-21 03:02:15 +00:00
apnadkarni 04dee3b51f Update nmake and mingw builds 2026-05-21 01:12:21 +00:00
apnadkarni e6cfbab12a Proposed fix for [006bef5d75] on Unix. MingW and nmake pending. 2026-05-20 17:03:36 +00:00
apnadkarni 2eb2d837ae Bug [b492c33154] - info exists env(xxx) and set env(xxx) are inconsistent after setting to empty string on Windows 2026-05-20 08:02:31 +00:00
apnadkarni dbfecab127 Add coro test 2026-05-20 02:25:38 +00:00
apnadkarni e09d68e1e0 Handle and test interp deletion within callbacks 2026-05-19 16:58:38 +00:00
jan.nijtmans bb29ed5240 Update to Unicode 18.0.0 (draft) 2026-05-19 08:25:35 +00:00
dgp 70d263f6a1 merge 9.0 2026-05-18 18:48:36 +00:00
dkf 989049bb15 Fix spacing around array references 2026-05-18 16:17:03 +00:00
apnadkarni 77972707a1 9.0 merge mark 2026-05-18 15:40:51 +00:00
apnadkarni 0cc3ebdf1f Fix missing win constraint when package requiring registry 2026-05-18 15:39:36 +00:00
apnadkarni 9a8c8c142c TIP 753 final 2026-05-18 09:22:29 +00:00
apnadkarni 7960cd2ab7 Update TIP 755 related manpages 2026-05-18 08:04:08 +00:00
apnadkarni 6d8a11ed0e Merge main 2026-05-18 06:10:32 +00:00
apnadkarni 05a44998e8 Update exec.n for TIP 753 2026-05-18 05:40:40 +00:00
apnadkarni 94043164f9 Update auto_execok docs for TIP 753 2026-05-18 04:39:13 +00:00
apnadkarni da1bdaea2c Merge main 2026-05-18 01:49:10 +00:00
apnadkarni e89470dfe1 Free post-initialization memory in thread and process finalization. Clean test and valgrind. 2026-05-17 17:43:47 +00:00
dkf c9047acb43 More indentation/spacing corrections; no behaviour changes 2026-05-17 15:06:26 +00:00
apnadkarni 84b23291b0 9.0 merge mark 2026-05-16 15:57:00 +00:00
apnadkarni ef184c951b Fix [6094de399d] and [4f06d7ca08] - registry/dde packages in static builds. 2026-05-16 15:54:26 +00:00
apnadkarni b49c1403ff Merge trunk 2026-05-16 13:38:13 +00:00
apnadkarni 985ff2e1e0 Add tests and fixes for recursion, safe interps 2026-05-16 11:43:22 +00:00
apnadkarni c882e57c3c More tests 2026-05-16 03:25:47 +00:00
apnadkarni edf90ee2df Add Tcl_ClearPostInitProcs, start on tests 2026-05-15 17:30:35 +00:00
dkf fb14459371 Fix some indents 2026-05-15 11:10:15 +00:00
apnadkarni 535b232162 Test scaffolding 2026-05-15 10:54:24 +00:00
apnadkarni 0b6a0080db Update changes 2026-05-15 05:09:33 +00:00
apnadkarni d64c791358 Merge 9.0 2026-05-15 05:04:05 +00:00
apnadkarni f39a8df9f1 Add Tcl_UnregisterPostInitProc to stubs 2026-05-15 05:01:29 +00:00
apnadkarni a188aa369a Add Tcl_UnregisterPostInitProc 2026-05-15 04:42:23 +00:00
apnadkarni 8712d43327 Support multiple callback registrations. Multithread safe 2026-05-14 16:13:54 +00:00
dgp 99aade1a7b Open release branch for 9.0.4 2026-05-13 18:04:24 +00:00
apnadkarni b30c2b5242 Oops - update Windows tcltest too 2026-05-12 16:09:23 +00:00
apnadkarni 9479d47001 Update tclTest to use postinit registration 2026-05-12 16:08:29 +00:00
apnadkarni f5a59feb83 Update dde pkgindex and makefile.vc for static builds. Add basic test 2026-05-12 15:30:57 +00:00
dgp eeacbf07ed merge release 2026-05-12 15:30:29 +00:00
apnadkarni 65f5c731b0 Tcl_RegisterPostInitProc skeleton 2026-05-12 14:20:51 +00:00
dkf e98afcd1f0 Add some missing doc comments 2026-05-11 11:26:52 +00:00
apnadkarni f0a346f20c Create new branch named "bug-4f06d7ca-91" 2026-05-11 11:21:35 +00:00
apnadkarni 350e1c913f Merge 9.0 - Update vctool to accept TESTPAT parameter 2026-05-11 06:36:34 +00:00
apnadkarni 614ce62d6f Update vctool to accept TESTPAT parameter 2026-05-11 06:35:17 +00:00
apnadkarni 1e4518dd67 Disable registry and dde pkgIndex commands for static builds 2026-05-10 07:48:34 +00:00
apnadkarni aff1f5cea1 Further tweaks - also fixes [6094de39] as a side effect 2026-05-10 05:52:56 +00:00
apnadkarni 3b0645c84b Bug 4f06d7ca - package require of static packages in secondary interps 2026-05-09 17:14:32 +00:00
dgp 515167c897 Untested attempt to silence compiler warning 2026-05-08 17:31:15 +00:00
dgp 88f30c06aa Fixes for several problems reported with the RC0 candidate. 2026-05-07 19:00:34 +00:00
dkf 7c026680a9 Write constraint correctly 2026-05-07 08:48:10 +00:00
apnadkarni dc6dc70a96 Merge main 2026-05-07 08:10:48 +00:00
apnadkarni 581e09539b Add test for caching on Unix 2026-05-07 06:40:54 +00:00
apnadkarni 18831a7d07 Tests for App Exe aliases, App Paths and PATHEXT (wscript) 2026-05-07 06:07:35 +00:00
apnadkarni bb546ea967 One more set of tests 2026-05-07 03:49:24 +00:00
PHILB 300e6831bb Fix NMAKEHLP_NATIVE failures for Tk test-classic runs 2026-05-06 23:00:58 +00:00
apnadkarni 3ead868089 A few more tests 2026-05-06 16:59:33 +00:00
apnadkarni fda5ce7bce Start on auto_execok tests 2026-05-06 13:48:05 +00:00
apnadkarni 400eb47abf Match auto_execok search path with exec's 2026-05-06 03:14:11 +00:00
dkf eb8decb1b2 A better way of testing: a custom match mode 2026-05-05 19:26:10 +00:00
apnadkarni afdd1f2b01 Add test for explicit cwd in PATH 2026-05-05 16:30:26 +00:00
dkf 94fafde08e Add some rounding to tests; C implementations of functions can be 1ULP out 2026-05-05 15:53:12 +00:00
apnadkarni c536201543 Relative paths not searched in PATH. Obey Windows w.r.t current directory inclusion 2026-05-05 15:47:53 +00:00
dkf 667dd92e2d Update list of referenced pages 2026-05-05 08:56:11 +00:00
dkf 22bcf8b34c Sort the functions in the documentation. 2026-05-04 16:55:00 +00:00
dkf f25256fbdb Docfix: gamma(), not tgamma() 2026-05-04 16:47:50 +00:00
dkf 552f6132ab Whoops; my bad 2026-05-04 15:07:52 +00:00
dkf 4d85a2847a Updated changes 2026-05-04 13:36:09 +00:00
dkf 3b732aa070 Implement TIP 735: Simpler List Filtering 2026-05-04 13:19:49 +00:00
dkf bd23eeff52 Implement TIP 745: Functions from C99 2026-05-04 13:16:17 +00:00
dkf 11725fca61 Slightly better way of writing an error path 2026-05-04 07:48:18 +00:00
apnadkarni fa4025b7c4 Merge trunk. Mostly whitespace and indentation 2026-05-04 06:19:54 +00:00
dkf ea4b079432 Use OutOfUintRange() more widely. 2026-05-03 16:31:46 +00:00
dkf 6595f9e21e Fix an argument indent 2026-05-02 13:43:09 +00:00
apnadkarni f7592862bd Fix 32-bit failures introduced in [5a2d03a86e] 2026-05-02 06:38:00 +00:00
apnadkarni 8b95bc2b7a Merge 9.0 2026-05-02 04:32:56 +00:00
apnadkarni 0a33aaf3c3 Merge 8.6 2026-05-02 04:10:38 +00:00
apnadkarni 8fac59dc54 Fix test exec-bug-4f0b5767ac: Ensure winget is on PATH and test result does not assume English 2026-05-02 03:29:16 +00:00
jan.nijtmans 22a6d59d28 Update changes 2026-05-01 19:41:04 +00:00
jan.nijtmans b47003e7f2 Fix warning: ISO C90 forbids mixed declarations and code 2026-05-01 16:07:09 +00:00
dgp baaab26d44 update changes 2026-04-30 16:53:03 +00:00
dgp e66c60bd35 merge 8.6 2026-04-30 16:20:37 +00:00
dkf 1487ca01b8 Fix [1615c80638] by moving problem comparisons to common helper function 2026-04-30 16:04:22 +00:00
dkf 4c88b98427 Fix formatting of function-level comments 2026-04-30 14:52:57 +00:00
jan.nijtmans 374ef0ac72 tzdata updated to Olson's tzdata2026b 2026-04-28 07:30:39 +00:00
jan.nijtmans 40aa2c5dc5 tzdata updated to Olson's tzdata2026b 2026-04-28 07:27:00 +00:00
jan.nijtmans cbc6434d64 tzdata updated to Olson's tzdata2026b 2026-04-28 07:24:18 +00:00
apnadkarni 6ec5334ee9 Support for App Paths on Windows 2026-04-28 06:31:53 +00:00
apnadkarni 02e19998cf Eliminate auto_execs cache 2026-04-28 06:02:49 +00:00
apnadkarni 5df8f72184 Only check built-ins if no directories in file name 2026-04-28 05:56:37 +00:00
apnadkarni aa24a262a2 Fix multiple PATH appends. 2026-04-28 05:54:31 +00:00
dkf 4c6719cb50 More indentation corrections 2026-04-27 20:02:22 +00:00
dkf e8341b3f5e Fix some indentation errors 2026-04-27 18:22:22 +00:00
apnadkarni e9780f7e31 Start on [4fae07ea8a]. Process Windows PATHEXT correctly 2026-04-27 17:35:43 +00:00
apnadkarni d48d00ba7d Check directory of current program first when searching for an executable 2026-04-27 05:16:59 +00:00
apnadkarni d8631c27f6 Merge main 2026-04-26 16:50:55 +00:00
dkf 1ac87ecbe9 Remove unnecessary blank lines 2026-04-26 16:46:16 +00:00
apnadkarni 0b34b5a938 Skip Dll's as executables. Also add test for PE to file executable 2026-04-26 16:41:20 +00:00
apnadkarni 5f86cefb00 Add bugfix bca391ab51 to changes.md 2026-04-26 16:19:13 +00:00
apnadkarni 95de857e1f Done with exec 2026-04-26 11:35:07 +00:00
dkf 3a30430481 merge trunk 2026-04-26 10:35:40 +00:00
dkf 23bf708be7 Fix another case problem caused by Windows 2026-04-26 10:32:46 +00:00
dkf 41a0edcadc merge trunk 2026-04-26 10:27:18 +00:00
apnadkarni 8d39466b31 Added TclWinPathReset 2026-04-26 04:33:48 +00:00
PHILB 0496929129 Sync win/rules-ext.vc and win/rules.vc up with other projects; remove debug messages. 2026-04-26 03:55:13 +00:00
PHILB a3b9a1d59a Sync win/rules-ext.vc and win/rules.vc up with other projects; remove debug messages. 2026-04-26 03:53:20 +00:00
dkf 00ffe41f03 A few more tweaks 2026-04-25 19:49:47 +00:00
dkf c44f7fc712 Avoid variable aliasing 2026-04-25 19:44:25 +00:00
dkf 75c02f70c5 Some tweaks 2026-04-25 19:33:09 +00:00
apnadkarni 053ee60033 Fix Windows dir order in path lookup 2026-04-25 17:46:50 +00:00
apnadkarni 3a06769440 Add test cases for existing 9.0 functionality 2026-04-25 14:27:59 +00:00
jan.nijtmans c536ed5ea8 Test everything on windows-2025-vs2026 image 2026-04-24 15:33:28 +00:00
apnadkarni 93cc105c62 Merge main 2026-04-24 09:18:01 +00:00
apnadkarni 52a05837b5 Add command tcl::registry, move registry module into core dll. 2026-04-24 09:17:20 +00:00
apnadkarni 6b9b395ce2 Update documentation for tcl::registry 2026-04-24 07:55:18 +00:00
apnadkarni a51e7f4e52 Refactor ApplicationType 2026-04-24 07:42:22 +00:00
apnadkarni b2536709e2 Bug [596936dd2d] - exec PATH search should select earlier directories irrespective of extension 2026-04-23 18:14:09 +00:00
apnadkarni 756ed8d443 Fix memory leak in AppendEnvironment (long path related changes, 9.1 only) 2026-04-23 16:25:35 +00:00
apnadkarni cd47aaefbd Fix make dist. nmakehlp.exe no longer exists 2026-04-23 10:03:13 +00:00
PHILB 59367dba5f merge forked branch 2026-04-22 18:10:15 +00:00
apnadkarni 456ae66294 Make AppendSystemError non-static (TclWinAppendSystemError) 2026-04-22 12:06:18 +00:00
apnadkarni 400553abfd Merge mark 2026-04-22 11:10:59 +00:00
apnadkarni ee04bcd1d0 Merge mark 2026-04-22 11:09:50 +00:00
apnadkarni 1297436e38 Fix [24d7f1a6] - crash on proc definition in namespace being deleted 2026-04-22 11:05:41 +00:00
apnadkarni 4a9723bf58 Merge 9.0 - Fix [24d7f1a6] - crash on proc definition in namespace being deleted 2026-04-22 10:27:29 +00:00
apnadkarni 78c412d6e1 Fix [24d7f1a6] - crash on proc definition in namespace being deleted 2026-04-22 10:15:29 +00:00
dkf 0d9cfae66b merge trunk 2026-04-22 07:48:45 +00:00
apnadkarni 0b678b1316 Regenerate configure for registry changes. Add tcl::registry test 2026-04-22 07:04:31 +00:00
apnadkarni 4f9a2f3ad5 Move registry module into main dll 2026-04-22 06:32:54 +00:00
dkf 1e1e528e93 merge trunk 2026-04-21 16:24:56 +00:00
jan.nijtmans f73836a6c8 Rebase to trunk 2026-04-21 13:22:32 +00:00
apnadkarni fda01d8dd4 Fix crash on proc definition in namespace being deleted 2026-04-21 11:00:22 +00:00
jan.nijtmans b720c3cdd7 Merge-mark 2026-04-21 06:22:40 +00:00
jan.nijtmans 744a0be143 Fix [60d8692823]: Tcl_Eval macro references TCL_INDEX_NONE which is not always defined. Was introduced [7c1522f896ca3a60|here] 2026-04-21 06:20:56 +00:00
PHILB ac2c2356af Remove x86_64-w64-mingw32-nmakehlp.exe. In its place, use the NMAKEHLP_NATIVE variable to find an nmakehlp.exe
during cross compilation. Add find_nmakehlp.tcl to deduce NMAKEHLP_NATIVE from TCLSH_NATIVE.
Increase MINOR version of rules.vc to 17.
2026-04-21 04:19:01 +00:00
PHILB 6996f4631e Remove x86_64-w64-mingw32-nmakehlp.exe. In its place, use the NMAKEHLP_NATIVE variable to find an nmakehlp.exe
during cross compilation. 
Add find_nmakehlp.tcl to deduce NMAKEHLP_NATIVE from TCLSH_NATIVE when that is set.
Change MINOR rev for rules.vc to 17
2026-04-21 04:03:31 +00:00
jan.nijtmans 1215f94f59 Bump burnett01/rsync-deployments from 8.0.4 to 8.0.5 2026-04-20 20:45:13 +00:00
jan.nijtmans a7ca4b2046 Bump burnett01/rsync-deployments from 8.0.4 to 8.0.5 2026-04-20 20:35:57 +00:00
jan.nijtmans a3a821a3c5 Remove unneeded undef 2026-04-20 13:22:50 +00:00
jan.nijtmans 745997c0c5 Merge 8.6 2026-04-20 13:09:16 +00:00
jan.nijtmans 5dad98f452 Make pkg*.c files work with Tcl 9.0 (as useful example) 2026-04-20 13:01:12 +00:00
jan.nijtmans c8bae31f7c Follow-up to [ad08bca6b1] fix: unbreak Thread build with Tcl 8 headers (user: jan.nijtmans) 2026-04-20 11:59:12 +00:00
jan.nijtmans b9ba515a7c Merge-mark 2026-04-19 20:05:20 +00:00
jan.nijtmans c76b35864c Follow-up to [ad08bca6b1] fix: unbreak Itcl build with Tcl 8 headers 2026-04-19 19:46:16 +00:00
apnadkarni 54a25d27bb Minor edits - remove obsolete info from Windows README 2026-04-19 03:49:01 +00:00
dgp 54b5a4b2de Open release branch for Tcl 8.6.18 2026-04-17 18:52:17 +00:00
dgp c95d22db52 merge 9.0 2026-04-17 18:48:29 +00:00
dgp 4ff46cad9f Merge doc updates from 8.6 branch 2026-04-17 18:46:58 +00:00
dgp 87aeb56b90 Eliminate pre-8.5 practices from examples. 2026-04-17 18:34:26 +00:00
dgp 5da8b3e5b4 Code and comments have moved away from "channel ID" and just refer to "channel". Make the docs agree. 2026-04-17 17:39:11 +00:00
dgp 236ad42650 sync the documentation for tcltest 2.5.11 as well. 2026-04-17 17:36:20 +00:00
jan.nijtmans 88d217ecde Follow-up to [e6ca0b1b67]: Cygwin filesystem is case-insensitive as well 2026-04-17 15:41:40 +00:00
apnadkarni 20213800ab Merge 9.0 - Fix [e2698b94b1]. Tcl_FSChdir crash on macos/macports after seteuid 2026-04-17 11:08:20 +00:00
apnadkarni 55ff115bf7 Fix [e2698b94b1]. Tcl_FSChdir crash on macos/macports after seteuid 2026-04-17 10:45:10 +00:00
jan.nijtmans a6a276ade4 Merge-mark 2026-04-17 10:35:32 +00:00
jan.nijtmans d6e712548f Code cleanup (from Tcl 9.1) 2026-04-17 10:34:45 +00:00
jan.nijtmans 5b2c30ec48 Fix compiler warning, seen with latest clang: variable 'p' is uninitialized when passed as a const pointer argument 2026-04-17 10:22:21 +00:00
apnadkarni 038e69248a Start on [e2698b94b1]. Tcl_FSChdir crash on macos after seteuid 2026-04-17 04:04:15 +00:00
jan.nijtmans c248ef79a3 Adapt tcltest to support up to Tcl 9.1 -> 2.5.11 2026-04-16 19:16:31 +00:00
jan.nijtmans 3d337b9d90 Adapt tcltest to support up to Tcl 9.1 -> 2.5.11 2026-04-16 19:09:51 +00:00
jan.nijtmans 99733e49e6 Adapt tcltest to support up to Tcl 9.1 -> 2.5.11 2026-04-16 18:57:23 +00:00
jan.nijtmans 15c054287d Merge-mark 2026-04-16 12:00:33 +00:00
jan.nijtmans 72aa5a8ab0 Fix building unix/dltest for Tcl 8 2026-04-16 11:55:18 +00:00
jan.nijtmans 26012eaea3 Follow-up from previous commit: Since 'configure' is generated from 'tcl.m4', the actual change should have been done in tcl.m4. 2026-04-15 08:54:48 +00:00
jan.nijtmans fe30225b27 Fix [ad08bca6b1]: Building sqlite3 for tcl8 redefines typedef 2026-04-15 08:29:46 +00:00
PHILB 72e5157731 MacOS GNUmakefile fix to avoid failing hard link creation on Samba filesystem.
unix configure fix to check the version of NATIVE_TCLSH is 8.6 or better.
2026-04-14 23:17:27 +00:00
apnadkarni 11f0dc0d35 Don't auto-exec reg.exe on non-Windows! 2026-04-14 17:36:20 +00:00
apnadkarni 7e0bf522ae Bug [e6ca0b1b67]. MacOS paths should be case insensitive + macos file
normalization fix + macos glob inconsistency fix.
2026-04-14 17:05:55 +00:00
apnadkarni 6a16b0fed6 Minor comment update. 2026-04-14 09:52:39 +00:00
apnadkarni a256b088ae Fix [275db3d985] - memory leak in DecodeZipEntryText 2026-04-14 08:19:18 +00:00
apnadkarni 6b16232799 Merge 9.0 - As per TIP 542, Tcl_UniChar{CaseMatch,Ncmp,Ncasecmp} are not present in Tcl 9 2026-04-14 05:48:26 +00:00
apnadkarni dcc539d07b As per TIP 542, Tcl_UniChar{CaseMatch,Ncmp,Ncasecmp} are not present in Tcl 9 2026-04-14 05:46:56 +00:00
apnadkarni e34bff0d59 Merge main 2026-04-14 02:20:41 +00:00
PHILB 23c4d359fc Remove x86_64-w64-mingw32-nmakehlp.exe.
In its place, use the NMAKEHLP_NATIVE variable to find an nmakehlp.exe
during cross compilation. 
Add find_nmakehlp.tcl to deduce NMAKEHLP_NATIVE from TCLSH_NATIVE
when that is set.
Remove debug message.
2026-04-13 18:49:37 +00:00
PHILB 8da70fe28f Remove x86_64-w64-mingw32-nmakehlp.exe.
In its place, use the NMAKEHLP_NATIVE variable to find an nmakehlp.exe during cross compilation.
Add find_nmakehlp.tcl to deduce NMAKEHLP_NATIVE from TCLSH_NATIVE when that is set.
2026-04-13 18:37:47 +00:00
apnadkarni 4367127bcc Fix for [275db3d985] - memory leak in DecodeZipEntryText 2026-04-13 17:52:00 +00:00
jan.nijtmans a4af5fe19c Fix [4724f35ada]: Avoid ClockClientData typedef redefinition 2026-04-13 16:43:30 +00:00
jan.nijtmans cdb8ed4f05 Fix [4724f35ada]: Avoid ClockClientData typedef redefinition 2026-04-13 16:42:19 +00:00
jan.nijtmans 02b5f37b12 Update changes.md 2026-04-13 16:20:43 +00:00
apnadkarni 10fa8c7db0 Create new branch named "bug-275db3d985" 2026-04-13 09:58:44 +00:00
PHILB c7b5b79e22 Remove x86_64-w64-mingw32-nmakehlp.exe.
In its place, use the NMAKEHLP_NATIVE variable to find an nmakehlp.exe
during cross compilation.
2026-04-12 21:42:34 +00:00
dkf c0fac7a05d Match trunk filename capitalisation. 2026-04-11 21:18:15 +00:00
dkf 856ab09c0f merge trunk 2026-04-11 20:52:12 +00:00
PHILB dde4374b8a Create new branch named "pbrooks-nmakehlp-exe-removal" 2026-04-11 18:01:33 +00:00
dkf 600c126291 Match trunk filename capitalisation.
"Thanks", Windows...
2026-04-11 16:17:39 +00:00
dkf 59af3eaffb merge trunk 2026-04-11 16:10:38 +00:00
apnadkarni c5f35a4a62 Remove outdated information from README 2026-04-11 05:52:09 +00:00
PHILB 87279bab94 Create new branch named "pbrooks-nmakehlp-exe-removal" 2026-04-10 22:39:10 +00:00
apnadkarni 042945d4e1 Merge main 2026-04-10 09:02:30 +00:00
apnadkarni 92fa6b523c Update changelog 2026-04-10 05:20:49 +00:00
apnadkarni d06068d382 Clean up comments. 2026-04-10 03:46:59 +00:00
apnadkarni 6f435108b6 More case-sensitivity related tests for file normalize 2026-04-10 01:58:21 +00:00
apnadkarni 0d77fecbbf macos file normalize fixes 2026-04-09 10:00:38 +00:00
jan.nijtmans a0cfc39f55 Merge 9.0. http -> 2.10.2 2026-04-09 09:46:41 +00:00
jan.nijtmans ca45948edb (cherry-pick): Shorten sequences of multiple blank lines. http -> 2.10.2 2026-04-09 09:38:49 +00:00
jan.nijtmans 3c4addfeca There is no Tcl 8.7 2026-04-09 08:50:06 +00:00
jan.nijtmans dcb68f8a5a Formatting 2026-04-08 12:13:41 +00:00
jan.nijtmans b888f4bb89 Rebase to trunk. Remove TCL_NO_DEPRECATED usage 2026-04-08 11:29:02 +00:00
jan.nijtmans 19cfdd45da Simplifications, using TclpGetMicroseconds() 2026-04-08 10:20:37 +00:00
dkf ebdf9d98b6 Improvements to style 2026-04-07 20:21:00 +00:00
jan.nijtmans af4d79b6f9 indenting 2026-04-07 13:14:05 +00:00
jan.nijtmans 764de4886b Implementation complete. Make deprecated for test purposes only 2026-04-07 13:05:58 +00:00
jan.nijtmans 0ef6e86797 Use more *2 functions internally 2026-04-07 07:30:22 +00:00
apnadkarni 3e13096feb Merge main 2026-04-05 17:11:58 +00:00
apnadkarni d592e1c6f7 On-demand GH action workflow with runtime customization 2026-04-05 17:10:52 +00:00
apnadkarni bf740809ad Sigh. Typo in constraint. 2026-04-03 15:04:35 +00:00
jan.nijtmans 915c04c7d2 removed unused function 2026-04-03 12:37:46 +00:00
jan.nijtmans 30b1dd1e83 Re-implement from other new-timer-api branch 2026-04-03 11:44:38 +00:00
jan.nijtmans 9a09665545 Add changes entry for bison update 2026-04-02 19:15:28 +00:00
apnadkarni 8119335e81 Enable bug tests for macos 2026-04-02 11:56:33 +00:00
apnadkarni d445c1dd75 Change case sensitivity on macos. Expected to generate test failures 2026-04-02 05:52:47 +00:00
jan.nijtmans ef3ea0ba59 Require autoconf 2.73 for (re-)generating 'configure' 2026-04-01 08:30:38 +00:00
apnadkarni 8501df97fa Merge 9.0 - glob tests 2026-04-01 08:16:57 +00:00
apnadkarni 2206f2e031 More glob mixed case tests 2026-04-01 08:02:30 +00:00
apnadkarni 9a80dd9b46 Use FindFirstFileExW+FIND_FIRST_EX_LARGE_FETCH to speed up Windows glob 20% 2026-04-01 07:59:50 +00:00
apnadkarni d791c1f697 Fix test constraints. 'mac' is not OSX 2026-03-31 10:33:35 +00:00
apnadkarni 1e15201aae Disable path case-sensitivity tests for macos 2026-03-31 05:26:35 +00:00
apnadkarni 94a839a3d1 Merge 9.0 2026-03-31 05:04:00 +00:00
jan.nijtmans af50cc7295 Merge 9.0 2026-03-27 21:23:15 +00:00
jan.nijtmans f336cd4201 Correct all missing sentinels 2026-03-27 21:22:28 +00:00
apnadkarni 90893fbb0e Fix missing / in test winFCmd-20.1. Tx Harald. 2026-03-26 11:31:52 +00:00
apnadkarni 01b8589abc Some test variances for windows file handling 2026-03-26 10:26:37 +00:00
apnadkarni 66bc02c190 Fix [bca391ab51]. Track current directory for each drive on Windows 2026-03-25 06:14:18 +00:00
apnadkarni ee05c8c60f 9.0 mergepoint 2026-03-25 05:53:45 +00:00
apnadkarni 63378611d7 Fix [108904173c] - glob+file normalize inconsistency on Windows 2026-03-25 05:51:15 +00:00
apnadkarni fb866d9198 Fix [108904173c] - glob+file normalize inconsistency on Windows 2026-03-25 05:34:02 +00:00
apnadkarni 1958e8e283 Merge 9.0. Bug [b0682c3c24]. Windows Glob error with drive in pattern 2026-03-25 04:11:25 +00:00
apnadkarni fb1268500b Bug [b0682c3c24]. Windows Glob error with drive in pattern 2026-03-25 03:29:21 +00:00
apnadkarni d73619a496 Some optimization to avoid normalization checks 2026-03-23 07:17:25 +00:00
jan.nijtmans b1d44e8fcb autoconf -> 2.73 2026-03-22 22:53:12 +00:00
jan.nijtmans e3f34c2b76 autoconf -> 2.73 2026-03-22 22:42:20 +00:00
apnadkarni ba77b77112 Bug [108904173c]. Failure to normalize path on Windows. 2026-03-22 15:11:40 +00:00
dkf 3055dcb2a7 More whitespace fixes 2026-03-22 12:57:09 +00:00
dkf a57a6e3a24 Some whitespace corrections. Totally minor. 2026-03-22 11:13:44 +00:00
apnadkarni 1811e60f65 Merge trunk 2026-03-21 11:44:27 +00:00
apnadkarni b5ad1df440 Track per-drive directory via env. Eliminate _getdcwd - see comments for reasons for avoidance 2026-03-20 16:45:32 +00:00
apnadkarni 076636bd13 Faster utf-8 channel io (and encoding) - https://core.tcl-lang.org/tcl/wiki?name=Faster+UTF+encoding 2026-03-19 15:38:13 +00:00
apnadkarni f47e6ffbf6 Bug [bca391ab51] - normalization of volume-relative files - WIP. 2026-03-19 12:06:49 +00:00
apnadkarni 77119bfbf9 Merge 9.0 2026-03-18 15:29:03 +00:00
apnadkarni ddb6a9cefe Merge 9.0 - One more possible Windows error code to check for invalid paths 2026-03-18 11:44:58 +00:00
apnadkarni b5606194e0 One more possible Windows error code to check for invalid paths 2026-03-18 11:39:08 +00:00
apnadkarni 20d085f5b1 Start on bug [b0682c3c24]. glob errors on Windows 2026-03-18 11:38:09 +00:00
jan.nijtmans 32f2f70f9c Tiny fix in TIP #732 implementation 2026-03-17 09:17:47 +00:00
jan.nijtmans 6a6797ee90 Since Tcl 9.1 now needs Windows 10+, remove older manifest entries 2026-03-17 08:51:39 +00:00
jan.nijtmans 7bfc578a34 Code cleanup, more bools 2026-03-17 08:48:03 +00:00
apnadkarni c1edefc119 Fix for [422b0414a3]. Clean exit for older unsupported Windows versions. 2026-03-17 02:30:06 +00:00
jan.nijtmans f069f758ef Code cleanup in tclOOProp.c (mainly missing 'static' keyword) 2026-03-16 12:12:46 +00:00
dkf 7f79c51ceb A more efficient call (and simpler) of tcl::CopyDirectory 2026-03-15 20:08:18 +00:00
apnadkarni 5ae2df69fd Fix for [422b0414a3]. Clean exit for older unsupported Windows versions. 2026-03-15 05:13:44 +00:00
jan.nijtmans 8e23c36356 Possible fix for [422b0414a3]: Tclsh91.exe from release 9.1.a1 crashes upon launch on older MS Windows release. 2026-03-14 13:26:11 +00:00
apnadkarni 97ad952207 Merge 9.0 2026-03-14 11:22:59 +00:00
apnadkarni 14c9d60166 Fix brain fa*t checking for ERROR_PATH_NOT_FOUND 2026-03-14 11:21:33 +00:00
apnadkarni 2c12c230f4 Merge 9.0 - Add constraints to skip tests that require tcltest when running with tclsh 2026-03-14 11:14:54 +00:00
apnadkarni 9aae5fb56d Add constraints to skip tests that require tcltest when running with tclsh 2026-03-14 10:52:31 +00:00
apnadkarni 01b48296f0 Merge 9.0 - Fix [4b22d84a] - const crash if undefined namespace 2026-03-14 10:30:48 +00:00
apnadkarni ab8ca9831e Update changes.md 2026-03-14 10:26:39 +00:00
apnadkarni d8c2a47a39 Fix [4b22d84a] - const crash if undefined namespace 2026-03-14 10:22:51 +00:00
apnadkarni 356ee104d8 Merge 9.0 - Treat ERROR_PATH_NOT_FOUND same as ERROR_FILE_NOT_FOUND 2026-03-14 10:17:36 +00:00
apnadkarni 7915d5ec54 Treat ERROR_PATH_NOT_FOUND same as ERROR_FILE_NOT_FOUND (for files, not registry) 2026-03-14 10:02:29 +00:00
jan.nijtmans 67de143a23 Merge-mark 2026-03-13 16:11:35 +00:00
jan.nijtmans 5aab367c12 sqlite3 -> 3.51.3 2026-03-13 16:10:28 +00:00
apnadkarni e1fd09ec8a Uncompiled case and test cases 2026-03-13 14:25:29 +00:00
apnadkarni c8c1e452ef Bug [4b22d84a62]. const crash on non-existent namespace 2026-03-13 14:14:14 +00:00
apnadkarni 619c38ae00 Add tests for new UTF code paths 2026-03-13 13:55:50 +00:00
apnadkarni 3cac5f3f1d Merge 9.0 - Revert commit [f752c1271a]. See ticket [f7495f63c0] 2026-03-13 08:00:29 +00:00
apnadkarni 2f264da9d8 Revert commit [f752c1271a]. See ticket [f7495f63c0] 2026-03-13 03:20:04 +00:00
jan.nijtmans c725f0fe68 Merge-mark 2026-03-12 11:29:03 +00:00
jan.nijtmans a2b2687a84 Fix [bf482486b9]: MS-VC6 compile error in 8.6: 'long' followed by 'long' is illegal. Disable false-flag warning C4550 2026-03-12 11:27:47 +00:00
jan.nijtmans 006082491b Disable warning C4550: expression evaluates to a function which is missing an argument list 2026-03-12 10:59:14 +00:00
jan.nijtmans 7d44c046bd Proposed fix for [bf482486b9]: MS-VC6 compile error in 8.6: 'long' followed by 'long' is illegal 2026-03-12 10:21:20 +00:00
apnadkarni bbb1419586 Merge 9.0 - Fix [8994c972ad] - performance regression in expr in/ni 2026-03-12 10:15:52 +00:00
apnadkarni 080c201d0c Fix [8994c972ad] - performance regression in expr in/ni 2026-03-12 10:12:08 +00:00
apnadkarni 053798592e Bug [8994c972ad] - Tcl 9 expr in/ni performance regression 2026-03-11 15:43:53 +00:00
apnadkarni 5eb8d6d2fc Eliminate unused ENCODING_UTF flag. Remove UTF remnants from CESU encoder 2026-03-11 06:22:26 +00:00
apnadkarni a6ba814a74 Further 15% boost to Cyrillic and Far Eastern. Still WIP, not ready for review!
Separate out UTF-8 encoder from CESU-8. Former never combines
surrogates and therefore need not track state. Further, eliminate
the isolated surrogate checks on *every* character iteration by
instead looking ahead only when a surrogate is encountered to
check if it is isolated. Separation also allows additional 
ENCODING_UTF conditional jumps to be removed in the loops.
2026-03-10 16:54:27 +00:00
jan.nijtmans dc139580f3 Many internal Tcl_Time -> long long changes 2026-03-10 15:23:15 +00:00
jan.nijtmans 564455803d Merge 9.0 2026-03-10 15:19:56 +00:00
jan.nijtmans 9e1685686c Fix "make html" failure:
scanning section Tcl Commands, version 9.0.4
...........................................................................lseq: DESCRIPTION: output-directive: unexpected .CS format:
\# increasing:
% <b>lseq</b> 1 to 5
....
2026-03-10 15:18:47 +00:00
jan.nijtmans 0051da9e54 Revert 'type' field back to an int. In stead fix the Tcl_InitHashTable() call. See [f7495f63c0] 2026-03-10 14:48:59 +00:00
apnadkarni 4f030d2ef5 Merge main 2026-03-10 06:19:25 +00:00
jan.nijtmans 6f3b430695 Rebase to trunk 2026-03-09 20:29:50 +00:00
sebres f29b982205 cherry-picked from 9.0, fixes [51aa53616067cb63]: free scan - fixed hours only TZ (±1 or ±01); adjust clock tests (runable without tzdata with system TZs only, also using -constraints clock-no-tzdata);
optimized numeric zone detection; resolve dozen conflicts (bison/yacc only left 5 shift/reduce and no reduce/reduce conflicts anymore).
2026-03-09 12:38:56 +00:00
jan.nijtmans cf01d23c52 Fix [00b699ff3c]: Minizip broken again 2026-03-09 08:54:28 +00:00
jan.nijtmans e05c9c1c5c Fix [00b699ff3c]: Minizip broken again 2026-03-09 08:52:57 +00:00
jan.nijtmans d39f089b09 Fix [f7495f63c0]. Valgrind reported error in SetScriptLimitCallback 2026-03-09 07:09:00 +00:00
jan.nijtmans a614621863 Rebase to trunk 2026-03-08 18:24:25 +00:00
apnadkarni 7a3d86fdc3 Merge main 2026-03-08 04:08:30 +00:00
apnadkarni b7ead73ba3 Merge 9.0. Fix [f7495f63c0]. Valgrind reported error in SetScriptLimitCallback 2026-03-08 04:04:57 +00:00
apnadkarni 50fffb85a8 Fix [f7495f63c0]. Valgrind reported error in SetScriptLimitCallback 2026-03-08 03:57:09 +00:00
dkf 5f54e96104 Fix some indentation 2026-03-07 16:10:37 +00:00
sebres 9dffa0c6f2 merge 9.0 (fix [51aa53616067cb63]) 2026-03-07 11:46:13 +00:00
sebres 28b2e07d0d fixes [51aa53616067cb63]: free scan - fixed hours only TZ (±1 or ±01); adjust clock tests (runable without tzdata with system TZs only, also using -constraints clock-no-tzdata);
optimized numeric zone detection; resolve dozen conflicts (bison/yacc only left 5 shift/reduce and no reduce/reduce conflicts anymore).
2026-03-07 11:38:59 +00:00
sebres 527e586ce3 small amend to [c4c0a3d5332426c1] with much simpler variant using C-condition (semantic predicate), without precedence, without extra numeric zone tokens in lexer, etc and only 1 shift/reduce conflict more (also totally without reduce/reduce conflicts) 2026-03-06 22:57:15 +00:00
jan.nijtmans e7ff7ac401 Update to utf8proc v2.11.3 2026-03-06 15:52:59 +00:00
sebres 958c7ed069 clock free-scan: optimize numeric zone detection as suggested in [51aa53616067cb63] (so it's only valid for +1, +01 and +0100 form), resolve dozen conflicts (bison/yacc only left 4 shift/reduce and no reduce/reduce conflicts anymore) 2026-03-06 12:17:22 +00:00
apnadkarni 976663de36 Update changes for TIPS 744, 746 2026-03-06 11:38:00 +00:00
jan.nijtmans d2bb6e3f5c Oops, minor version is still 1 2026-03-06 11:10:52 +00:00
apnadkarni e45aac5af2 Fix [f7495f63c0]. Valgrind reported error in SetScriptLimitCallback 2026-03-06 11:07:29 +00:00
jan.nijtmans e940dc2252 Fix test failures with --enable-memory=all. Just missing constraints 2026-03-06 09:52:38 +00:00
jan.nijtmans 49feac908f No need for Bugfixes section, because all of those are already in 9.0 (as it should be) 2026-03-06 09:32:34 +00:00
jan.nijtmans 71004d533c Backport some formatting/bool usage 2026-03-06 09:26:12 +00:00
jan.nijtmans 33045bf06e consistant Tcl_InitStubs() calls 2026-03-06 08:39:27 +00:00
apnadkarni 5c71b02175 Merge main 2026-03-06 04:06:39 +00:00
griffin 5a9ce99acf lseq bugfixes: 8d1fc7,999b69,tip-746 2026-03-05 22:55:16 +00:00
jan.nijtmans 098ab9a46e re-generate 'configure' 2026-03-05 21:05:55 +00:00
jan.nijtmans 8df0907155 Merge-mark 2026-03-05 20:47:40 +00:00
jan.nijtmans 39abf7c275 Version -> 9.1a2 2026-03-05 20:43:28 +00:00
sebres 62d39337ac fixed constraint, add new tests inlining clock.test to cover clock without tzdata (by constraint "clock-no-tzdata" only) 2026-03-05 19:08:06 +00:00
sebres 596fd9321f additional test for [51aa53616067cb63], e. g. for hours only TZ (shall be covered by normal testing with tzdata too) 2026-03-04 23:19:34 +00:00
sebres 686e5da62e fixes [51aa53616067cb63]: free scan - fexed calculation in bison/yacc of hours only TZ (±1 or ±01);
adjust clock tests to be able run it without tzdata (system TZs only), used another TZ names, added constraints, etc.
2026-03-04 22:13:15 +00:00
jan.nijtmans 239e5c6c41 Update changes.md 2026-03-04 08:07:20 +00:00
jan.nijtmans bc911761d7 Update "changes" file 2026-03-04 08:05:37 +00:00
sebres f24163fe30 merge 9.0 (partial): amend to [2c237beffbace823] fixing generation of TZ name from offset by %z artificial name in data; update to tzdata 2026a; fixes test coverage (TZ generated from offset by artificial %z token in IANA TZ database) 2026-03-04 00:40:18 +00:00
sebres 7df528086f merge 8.x: amend to [2c237beffbace823] fixing generation of TZ name from offset by %z artificial name in data; update to tzdata 2026a; fixes test coverage (TZ generated from offset by artificial %z token in IANA TZ database) 2026-03-04 00:36:35 +00:00
sebres fb945046bd merge 8.6: amend to [2c237beffbace823] fixing generation of TZ name from offset by %z artificial name in data; update to tzdata 2026a; fixes test coverage (TZ generated from offset by artificial %z token in IANA TZ database) 2026-03-04 00:26:47 +00:00
sebres 34bea77ea0 amend to [2c237beffbace823] fixing generation of TZ name from offset by %z artificial name in data; update to tzdata 2026a 2026-03-04 00:21:19 +00:00
sebres 031ac35ce3 fixes test coverage for [2c237beffbace823] (TZ generated from offset by artificial %z token in IANA TZ database),
this illustrate the bug by wrong TZ-name generation for TZ with minutes and negative offset
2026-03-04 00:20:31 +00:00
jan.nijtmans 37fbb8e6f8 Itcl -> 4.3.7 2026-03-03 17:21:23 +00:00
jan.nijtmans 567a9db8ed Update download-artifact/upload-artifact 2026-03-02 20:53:18 +00:00
jan.nijtmans d2f0a3c6a7 Update download-artifact/upload-artifact 2026-03-02 20:03:50 +00:00
jan.nijtmans da621f5b99 Fix [b3fbd9a6e0]: string trim generates invalid utf-8 for some codepoints 2026-03-02 19:48:57 +00:00
jan.nijtmans 0cbfbff755 Update tinydir.h to version 1.2.6 2026-03-02 12:13:42 +00:00
jan.nijtmans 5399e19110 Update tinydir.h to version 1.2.6 2026-03-02 12:12:11 +00:00
dkf d106d172b3 Improve some documentation comments 2026-03-01 12:07:45 +00:00
dkf 0fc53832e6 One statement per line, please. 2026-02-28 22:26:02 +00:00
jan.nijtmans 4fc409989e Fix Windows build: tclArithSeries.c(368): error C2220: the following warning is treated as an error
tclArithSeries.c(368): warning C4305: '=': truncation from 'Tcl_Size' to 'volatile double'
2026-02-26 11:30:14 +00:00
apnadkarni 16bbdf95fd Protect against invalid case of nul byte in Tcl's internal string rep 2026-02-26 08:48:26 +00:00
apnadkarni 850d5e7089 Still WIP. See below.
Fixes Far East encoding performance regression introduced by the optimizations in prior commit. Surprising because the optimizations seem reasonable. Only seen on Windows but the optimization's removal of the 0-check seems to impact code generation.

No need to check for range 1:7F in generic code as already handled
by ASCII fast path.

Changed BYTE_COPYABLE to always reject nul bytes irrespective of 
encoding direction.

End result: on Windows, far east regression eliminated. On WSL/gcc, ASCII and West Euro another 15% faster.
2026-02-26 08:33:45 +00:00
griffin 04b82fa89b lseq bugfixes: 8d1fc7,999b69,tip-746 2026-02-25 19:48:16 +00:00
jan.nijtmans a25ea880f1 Review: Handling of TCL_COMBINE here makes no sense, the same can be done even faster. APN - Indeed it doesn't. TCL_COMBINE is not part of flags. Don't know what I was thinking. Thanks! 2026-02-25 17:01:04 +00:00
apnadkarni bc74c77642 Optimize non-TCL_COMBINE case by inlining 2026-02-24 15:44:07 +00:00
dkf ac172601ff Remove expression support from the [lseq] compiler/bytecode support 2026-02-23 16:52:51 +00:00
dgp 9d334c2de5 merge trunk 2026-02-23 11:47:06 +00:00
apnadkarni 3f560ba8db Remove debug control 2026-02-23 10:57:45 +00:00
apnadkarni 2e95294664 Experiment with ASCII runs 2026-02-22 14:22:08 +00:00
apnadkarni 678e0128a9 Remove dead code 2026-02-22 14:18:00 +00:00
dkf 53c999e01a Remove excess blocks 2026-02-22 12:54:38 +00:00
apnadkarni 65011427b6 Remove arbitrary limit on data read from test channels. Hampers testing with large data 2026-02-22 11:44:32 +00:00
griffin ce63919a0e merge core-9-0-branch 2026-02-21 19:57:28 +00:00
griffin 7131264f30 fix bug-999b6966: lseq has incorrect results in edge cases 2026-02-21 01:37:18 +00:00
dkf 9d90860b0a Add missing error codes to some [icu] failures 2026-02-20 20:27:22 +00:00
jan.nijtmans f224686661 Merge trunk 2026-02-18 16:54:30 +00:00
jan.nijtmans c8fa434cc4 Upgrade to zlib-1.3.2 2026-02-18 14:15:08 +00:00
jan.nijtmans 1da0c83e25 Upgrade to zlib-1.3.2 2026-02-18 12:38:58 +00:00
jan.nijtmans 89cc1faa9c Upgrade to zlib-1.3.2 2026-02-18 11:47:33 +00:00
jan.nijtmans c661ab4e26 Upgrade to zlib-1.3.2 2026-02-18 09:34:57 +00:00
jan.nijtmans 6e58e790a0 Fix [be40b73615] nmake: rmdir and mkdir are picked from cygwin if available 2026-02-18 08:09:02 +00:00
jan.nijtmans 850138b7b2 Fix [be40b73615] nmake: rmdir and mkdir are picked from cygwin if available 2026-02-18 08:07:06 +00:00
jan.nijtmans 171e985a0e [be40b73615] nmake: rmdir and mkdir are picked from cygwin if available 2026-02-18 07:56:44 +00:00
oehhar 97b539a779 [be40b736] nmake picks Cygwin rmdir. Patch by Csaba (thanks) 2026-02-17 18:30:42 +00:00
jan.nijtmans c7dcd19684 Fix C++ warnings like:
tclBasic.c:333:92: warning: bitwise operation between different enumeration types ‘CmdInfoFlags’ and ‘CommandFlags’ is deprecated [-Wdeprecated-enum-enum-conversion]
  333 |     {"lappend",         Tcl_LappendObjCmd,      TclCompileLappendCmd,   NULL,   CMD_IS_SAFE|CMD_COMPILES_EXPANDED},
      |                                                                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
2026-02-17 07:48:01 +00:00
jan.nijtmans 3842c91e09 Make Active*Trace.reverseScan a bool 2026-02-16 17:10:16 +00:00
jan.nijtmans 462d7b6dfa Make more use of anonymous union, and more internal bools 2026-02-16 16:31:04 +00:00
dkf 1253a244ca Make code a little clearer, and use correct declaration style 2026-02-16 12:20:54 +00:00
jan.nijtmans 3ca3a14059 More bool in tclVar.c 2026-02-16 11:18:08 +00:00
jan.nijtmans 1dabb5456a (backport): Fix compiler warnings, seen with gcc 16. Use some more bools internally 2026-02-16 10:54:42 +00:00
jan.nijtmans 9d791ebc0b Fix compiler warnings, seen with gcc 16 2026-02-16 09:13:20 +00:00
dkf 8914c5f3e6 General whitespace fixes. No semantic changes. 2026-02-14 16:39:53 +00:00
dkf c1b028ab94 Shorten sequences of multiple blank lines 2026-02-14 15:23:10 +00:00
jan.nijtmans fdfef93c87 Simplify 2026-02-11 21:13:49 +00:00
jan.nijtmans b2920eca63 Merge trunk. No need for stat with -r 2026-02-11 18:41:02 +00:00
griffin 09b1c1946d Merge core-9-0-branch 2026-02-11 17:58:49 +00:00
jan.nijtmans 2ad11a0bca Undo 2 Tcl-specific changes in zlib: those are no longer necessary 2026-02-10 16:27:48 +00:00
jan.nijtmans 14336b5099 Undo 2 Tcl-specific changes in zlib: those are no longer necessary 2026-02-10 16:27:12 +00:00
jan.nijtmans 11a4e7803f Undo 2 Tcl-specific changes in zlib: those are no longer necessary 2026-02-10 16:17:57 +00:00
jan.nijtmans 86beeb858e Fix C++ compiler error:
generic/tclBasic.c: In function ‘int TclHideUnsafeCommands(Tcl_Interp*)’:
generic/tclBasic.c:1457:53: error: taking address of temporary array
 1457 |                     Tcl_NewListObj(2, ((Tcl_Obj*[]) {
      |                                       ~~~~~~~~~~~~~~^
 1458 |                         Tcl_NewStringObj(ensSetupPtr->name, TCL_AUTO_LENGTH),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1459 |                         Tcl_NewStringObj(implMapPtr->name, TCL_AUTO_LENGTH)
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1460 |                     })));
      |                     ~~
make: *** [Makefile:1314: tclBasic.o] Error 1
2026-02-10 13:27:49 +00:00
jan.nijtmans 61733ed3af Update to burnett01/rsync-deployments@8.0.4 2026-02-10 11:29:39 +00:00
jan.nijtmans 2510b45102 Update to burnett01/rsync-deployments@8.0.4 2026-02-10 11:27:55 +00:00
griffin c169a7ec04 Corrected results in edge cases where computed length is < 0. Tweak lseq man page. 2026-02-10 01:05:03 +00:00
jan.nijtmans 5d997225b6 Few more bool's in test cases 2026-02-09 14:24:09 +00:00
jan.nijtmans af3255e312 Implement (internal) TclpIsAtty() for Windows.
More internal bool usage
2026-02-09 08:54:31 +00:00
griffin 22102f5a20 Update lseq man page to reflect changes in command behavior 2026-02-07 05:20:30 +00:00
griffin 364de3061b some code and comment cleanup 2026-02-07 02:18:47 +00:00
griffin e4fc1c0a92 fix bugs in lseq: [8d1fc7099570], [999b6966b299], tip-746 2026-02-07 01:14:32 +00:00
jan.nijtmans e4327d2733 Always compile minizip with -DMINIZIP_FOPEN_NO_64 and -DHAVE_DIRENT_H 2026-02-06 16:46:47 +00:00
jan.nijtmans 828769fe5f tinydir -> dirent. This will make it more likely that zlib upstream accepts our changes 2026-02-06 13:38:39 +00:00
jan.nijtmans 2d05b7d587 Eliminate SUPPORTS_TTY, which is just an alias for HAVE_TERMIOS_H. int -> bool where appropriate 2026-02-06 11:12:06 +00:00
jan.nijtmans a12a03d40a Implement (internal) TclpIsAtty() for Windows 2026-02-06 10:49:27 +00:00
jan.nijtmans e73e2dcaec (cherry-pick): Since 32-bit Cygwin is dead, don't talk about Cygwin64 any more. Remove some dead code. 2026-02-06 10:42:45 +00:00
dkf b32b478974 More clearly mark file-internal functions as static. 2026-02-05 15:17:55 +00:00
jan.nijtmans 44c62ca0c3 Fix [1b6f81955c]: 32-bit zlib1.dll now depends on libgcc_s_sjlj-1.dll 2026-02-05 07:58:58 +00:00
jan.nijtmans b1f8bcd0d0 Fix [1b6f81955c]: 32-bit zlib1.dll now depends on libgcc_s_sjlj-1.dll 2026-02-05 07:57:33 +00:00
jan.nijtmans 38b46e9085 Fix [1b6f81955c]: 32-bit zlib1.dll now depends on libgcc_s_sjlj-1.dll 2026-02-05 07:56:28 +00:00
jan.nijtmans b571b06d2a Build 32-bit zlib1.dll with -static-libgcc 2026-02-05 07:41:00 +00:00
jan.nijtmans 8a37aad3c7 Remove compat/zlib/contrib/untgz. See: [0b9367a240] 2026-02-04 11:46:38 +00:00
jan.nijtmans 6e7e02e9a9 Remove compat/zlib/contrib/untgz. See: [0b9367a240] 2026-02-04 11:45:58 +00:00
jan.nijtmans 5eac35102f Remove compat/zlib/contrib/untgz. See: [0b9367a240] 2026-02-04 11:43:55 +00:00
jan.nijtmans cab79d17b9 A few more int -> bool 2026-02-04 10:59:43 +00:00
jan.nijtmans 84b5bfcf57 Fix [9c45616627b30a6f]: Infinite loop in TclFSGetAncestorPaths 2026-02-04 09:58:41 +00:00
jan.nijtmans 16b553eca1 Update to zlib 1.3.1.2 2026-02-04 09:56:45 +00:00
dkf 3740c54961 Internally use TclNRAddCallback whenever we know the callback function is defined 2026-02-03 22:12:49 +00:00
jan.nijtmans 65a54de458 More Tcl_Time -> long long simplifications 2026-02-03 17:37:47 +00:00
jan.nijtmans 92ff374edb Update changes.md 2026-02-03 09:55:24 +00:00
jan.nijtmans bfd04926e9 Fix build error in MSVC (due to an upstream change in zlib, which looks wrong) 2026-02-03 09:23:58 +00:00
jan.nijtmans df390c4390 Update to zlib 1.3.1.2 2026-02-03 09:16:43 +00:00
jan.nijtmans 0ba3839968 Make Tcl_ObjCmdProc usable in extensions again, even with -DTCL_NO_DEPRECATED. Reported by Paul Obermeier. 2026-02-03 08:03:50 +00:00
jan.nijtmans e13c47fcf6 Fix logical error in minizip (not present upstream) 2026-02-03 07:32:04 +00:00
jan.nijtmans 045d998352 Update to appleboy/ssh-action@v1.2.5 2026-02-03 07:20:48 +00:00
jan.nijtmans fd4a20fbdf Update to zlib 1.3.1.2 2026-02-03 07:18:12 +00:00
jan.nijtmans 48c83135b6 Rebuild win64-arm/zlib1.dll 2026-02-03 07:15:01 +00:00
jan.nijtmans 5fd165a6f0 Upgrade zlib to 1.3.1.2 2026-02-02 15:36:36 +00:00
jan.nijtmans 260ffc7aa0 Upgrade to zlib-1.3.1.2 2026-02-02 09:52:28 +00:00
jan.nijtmans c830d15e03 (temporary) revert Tcl-specific changes 2026-02-02 09:42:21 +00:00
apnadkarni 2f16b8860c Fix [602971ae] - could not find init.tcl if TCL_LIBRARY specified at *build* time 2026-02-01 03:26:09 +00:00
jan.nijtmans d4ad9a8490 Fix [98ce2ebb28]: No __builtin_unreachable() in gcc < 4.5. 2026-01-31 18:03:05 +00:00
jan.nijtmans ca03d6d5dd Fix [98ce2ebb28]: No __builtin_unreachable() in gcc < 4.5. 2026-01-31 17:57:02 +00:00
apnadkarni 0a5f751f38 Pass CFG_{RUNTIME,INSTALL}_SCRDIR to tclInterp.c 2026-01-31 06:23:41 +00:00
dgp 49aae8ee1c merge trunk 2026-01-30 19:32:53 +00:00
dkf 1e80616cd5 Avoid theoretic UMR, improve readability 2026-01-30 17:36:47 +00:00
jan.nijtmans f2e8eef45e More Tcl_Time related clean-up 2026-01-30 15:55:26 +00:00
jan.nijtmans 947100d4cc Clean-ups unrelated to new-timer-api itself 2026-01-28 11:19:12 +00:00
jan.nijtmans c60ae585f1 Use Tcl_GetMonotonicTime() in performance tests 2026-01-27 16:02:38 +00:00
dkf 19d62cc9e0 Indentation corrections 2026-01-25 17:18:38 +00:00
jan.nijtmans afac95d0f6 Eliminate the use of 'memcpy' for Tcl_Time's. Fix assert warning. 2026-01-22 09:29:05 +00:00
jan.nijtmans d4cdbc856e Eliminate the use of 'memcpy' for Tcl_Time's. Backport some more formatting from 9.1 2026-01-22 08:30:54 +00:00
jan.nijtmans 74c09434d2 Fix compiler error with clang: No variable declaration allowed after label. Backport more formatting 2026-01-21 23:01:10 +00:00
jan.nijtmans b184410ae9 Backport formatting, Tcl_Size and Tcl 8 left-over 2026-01-21 14:04:16 +00:00
jan.nijtmans a5cb43d84c Merge-mark 2026-01-20 10:51:05 +00:00
jan.nijtmans 8bd858e0c1 (backport): Fix warnings in asserts (seen in debug-mode only). Fix some C++ usage. 2026-01-20 10:34:28 +00:00
jan.nijtmans b989f5227c timer-15.7 often fails on MacOS CI. Increase timeout on MacOS a little 2026-01-20 09:58:09 +00:00
jan.nijtmans f0992752d5 Even more Tcl_GetMonotonicTime() usage 2026-01-20 08:01:31 +00:00
jan.nijtmans 7ee6433b1f Fix warnings in asserts (seen in debug-mode only) 2026-01-20 08:00:22 +00:00
jan.nijtmans 3d2d7f80b9 Use Tcl_GetMonotonicTime() where it makes sense 2026-01-19 15:55:15 +00:00
dkf 9e5575b5a7 Follow the Engineering Manual style 2026-01-19 11:17:33 +00:00
dkf 2048569eca Follow the Engineering Manual style 2026-01-19 11:14:53 +00:00
dkf 74bcd1dd4c Macro to share pattern for Tcl_Time->micros 2026-01-19 11:07:50 +00:00
jan.nijtmans 99c4e2e6c1 Disable some timer tests, when running on MacOS CI environment 2026-01-19 09:19:32 +00:00
jan.nijtmans d356739afe Fix error, when compiling with clang++:
tclTest.c:2222:6: error: cannot jump from this goto statement to its label
 2222 |             goto done;
      |             ^
tclTest.c:2238:14: note: jump bypasses variable initialization
 2238 |     Tcl_Size srcNumBytes = prefixLen + srcLen;
      |              ^
2026-01-19 07:12:20 +00:00
jan.nijtmans 716f83c79f Complete deprecation of Tcl_SetTimeProc/Tcl_QueryTimeProc 2026-01-18 22:26:01 +00:00
jan.nijtmans 909402af91 Fix compiler error with clang: No variable declaration allowed after label 2026-01-18 20:27:30 +00:00
dkf 508819e4f9 Clearer error assembly in [proc] 2026-01-18 12:00:29 +00:00
dkf 6bad52e456 Avoid unsafe assumption about when interpreter limits are set (potential UMR) 2026-01-18 11:51:21 +00:00
sebres 20bcff16b6 merge 9.0 (bignum comparison, performance) 2026-01-18 02:22:18 +00:00
sebres 118c96cb2a improve TclCompareTwoNumbers and its performance (amend to [8dd2807066d7]) - avoid interim copying of bignum internal representations 2026-01-18 02:20:19 +00:00
sebres 07d598f7fe merge 9.0 (fix for [96e5c814eb9ed955]) 2026-01-18 01:56:22 +00:00
sebres b754b137a7 closes [96e5c814eb9ed955]: fixes sanitizer RTM-error signed integer overflow (no-trapv pragma also removed now), optimizing code, deduplication 2026-01-18 01:47:04 +00:00
sebres a60846a449 closes [96e5c814eb9ed955]: fixes sanitizer RTM-error signed integer overflow (no-trapv pragma also removed now), optimizing code, deduplication 2026-01-18 01:43:57 +00:00
oehhar 2e5fabf6d0 Merge tcltimer.c optimisation to replace Tcl_time by long long. Remove some roundings on milliseconds. Don't do multiple wait, if no interp limit polling required. 2026-01-17 18:36:25 +00:00
dgp 9cce1e2893 Open release branch for Tcl 9.1a1 2026-01-16 17:35:29 +00:00
oehhar e2b7e12db4 Remove unneded multiplication overflow check, as input is 31 bit. Thanks to MAC CI 2026-01-16 09:31:03 +00:00
Torsten fa5c658825 added more exceptions to link handlung during generation of html manual pages 2026-01-16 05:30:42 +00:00
oehhar a5d31e4b17 Transform all Tcl_Time to long long in file tclTimer.c. Exclude event command Tcl_SetMaxBlockTime 2026-01-15 11:42:27 +00:00
oehhar 031d25cfa2 Merge main and resolve merge conflicts in tclTimer.c 2026-01-13 20:27:21 +00:00
jan.nijtmans 8e4597912e Fix [8865497ef9]: configure --enable-man-compression error 2026-01-13 08:32:32 +00:00
jan.nijtmans b12b156ec9 Fix [8865497ef9]: configure --enable-man-compression error 2026-01-13 08:31:23 +00:00
jan.nijtmans 19b9d68bab Fix [8865497ef9]: configure --enable-man-compression error 2026-01-13 08:18:34 +00:00
dkf 93d1c32836 Make [timer] fit standard model of ensemble declarations. 2026-01-12 19:39:11 +00:00
dkf d39eddf5db Use correct compilation descriptors in the [timer] ensemble definition.
Also name some factors with respect to unit conversions. Nobody's ever going to change those.
2026-01-12 17:06:05 +00:00
dkf 09f5b1029a Rename file to consistently capitalise 2026-01-12 09:41:32 +00:00
apnadkarni 0ffd195d46 Bug [a420eb1700] - missing files in distribution 2026-01-12 03:31:44 +00:00
jan.nijtmans 194ca76731 Fix executable flags, both before and after 'make dist' 2026-01-11 21:14:53 +00:00
jan.nijtmans ac12c60f80 Fix executable flags, both before and after 'make dist' 2026-01-11 20:49:18 +00:00
jan.nijtmans 8ac8a61712 Fix executable flag 2026-01-11 18:38:37 +00:00
jan.nijtmans 48ad5e0f66 Fix indenting 2026-01-11 17:51:29 +00:00
jan.nijtmans b115df7ece Merge-mark 2026-01-11 17:45:51 +00:00
jan.nijtmans 00aa29be21 (cherry-pick): Add Tcl9 Logo and Icon. 2026-01-11 17:35:59 +00:00
apnadkarni 3e4a1fedb3 TIP 744 accepted 2026-01-11 11:59:22 +00:00
dkf bc5c59e1c0 A more efficient method for storing compiled var resolver info 2026-01-11 11:13:05 +00:00
apnadkarni e00fcb7cbf Merge main 2026-01-11 01:52:52 +00:00
dkf 0ef382da05 fix divergence 2026-01-10 14:08:12 +00:00
Colin Macleod af5f1c6bac Add Tcl9 Logo and Icon. 2026-01-10 11:14:20 +00:00
dkf 7099fddeb0 Slightly faster to use memcmp() instead of TclStringCmp() for the TclOO variable resolver 2026-01-10 09:16:18 +00:00
jan.nijtmans 70aafb3d9d Fix C++ warnings, seen with clang++ 2026-01-09 12:47:33 +00:00
apnadkarni f8b2ab7014 Fix -DTCL_NO_DEPRECATED build 2026-01-09 12:06:02 +00:00
apnadkarni 94dd190005 Merge main 2026-01-09 09:50:02 +00:00
apnadkarni 88964abea1 Update manpages for TIP 732 2026-01-09 06:38:00 +00:00
apnadkarni 43df96454d TIP 732 accepted 2026-01-09 01:37:38 +00:00
oehhar 3790030eed start the timer event optimisation seen when developping TIP-723. Aim is Sergeys patch anyway... 2026-01-08 17:21:26 +00:00
jan.nijtmans e032f6f87b Update changes.md 2026-01-08 11:03:03 +00:00
oehhar 7dc31f1ea8 TIP-723 timer in changes.md 2026-01-08 10:50:58 +00:00
oehhar 6df50677af TIP-723 timer: merged to main, thank you all! 2026-01-08 10:48:09 +00:00
apnadkarni c6b50841e3 Merge trunk 2026-01-08 02:26:42 +00:00
dkf 5ed81b0116 Further optimise the TclOO variable resolver. 2026-01-07 20:49:06 +00:00
oehhar 7b57aae6e2 TIP-723 timer: make test timer-15.10 also tolerant to 100 ms, and not 1ms 2026-01-07 17:47:26 +00:00
oehhar d5d75833e7 TIP-723 timer: fix usual C++ warning on Linux found by CI 2026-01-07 10:22:59 +00:00
oehhar eb7987cdb1 TIP-723 timer: add man pages 2026-01-06 21:54:53 +00:00
jan.nijtmans 09e86f03ce Merge-mark 2026-01-06 14:39:37 +00:00
oehhar e3f383998d TIP-723 timer: implement default unit for "timer sleep". 2026-01-06 13:35:29 +00:00
oehhar cb449deda6 TIP-723 timer: allow unit abbreviations 2026-01-06 12:48:20 +00:00
jan.nijtmans d45d06ef12 (cherry-pick): Update to burnett01/rsync-deployments@8.0.3 as suggested by dependabot 2026-01-06 11:33:36 +00:00
oehhar 0c4e3d62d7 merge main 2026-01-06 10:34:16 +00:00
dkf 6540c94fcf Update to burnett01/rsync-deployments@8.0.3 as suggested by dependabot 2026-01-06 09:54:48 +00:00
dkf 1687ebcb3f Optimise the variable resolver core to do fewer dereferences and use TclStringCmp 2026-01-06 09:28:09 +00:00
dkf 731cb5d5b3 Minor whitespace fixes 2026-01-06 09:26:29 +00:00
jan.nijtmans 9e53f0c73e Use lowercase for AccCtrl.h and AclAPI.h include (reported by Emiliano) 2026-01-06 08:02:37 +00:00
dkf e5a5edd1e7 Some factoring out of more internal bits of TclOO; no API change at all 2026-01-05 19:39:12 +00:00
dkf 18aef20d79 merge trunk 2026-01-05 15:24:18 +00:00
dkf 763d92a2ec Add divmod as well, to complete the set 2026-01-05 15:06:39 +00:00
dkf 070c43dd20 Slightly better comments in test file 2026-01-05 11:47:32 +00:00
jan.nijtmans c2cee24c05 Doing a better job of 'Remove Tcl_WinErrorRaise and Tcl_WinAppendMessageFromModule from TIP 744' 2026-01-04 21:19:22 +00:00
jan.nijtmans 228c6c1c94 (cherry-pick) Missing Tcl_WrongNumArgs call 2026-01-04 21:11:51 +00:00
jan.nijtmans fe98528fe2 Missing 'const' 2026-01-04 18:20:44 +00:00
jan.nijtmans deb46c0179 Missing 'const' 2026-01-04 15:05:11 +00:00
jan.nijtmans 3e1221eb72 missing 'const' 2026-01-04 14:43:21 +00:00
jan.nijtmans 8a1db380a2 Minor testcase fix 2026-01-03 18:31:35 +00:00
dkf 49f6d42364 merge trunk 2026-01-03 16:01:22 +00:00
dkf 7584d63cfe add logb and remquo 2026-01-03 15:54:04 +00:00
dkf a84e34240d Improve arg count tests 2026-01-02 21:44:22 +00:00
dkf 763a5bf2e0 Add some tests for the new funcs 2026-01-02 15:58:35 +00:00
dkf aefd096d51 Stupid specification stupidity, and rename tgamma to gamma (after reading why the name is what it is) 2026-01-01 16:15:54 +00:00
dkf 14d8e78333 Added modf as a command 2026-01-01 15:27:23 +00:00
apnadkarni a32417095f Fix gcc15 warnings - C++ compat, unused vars 2026-01-01 07:01:02 +00:00
apnadkarni 5b4c9eab91 Do not shimmer abstract lists in join 2026-01-01 06:38:41 +00:00
apnadkarni 66dc008c88 Comments, minor refactoring 2026-01-01 06:18:08 +00:00
dkf 7d3a4cf418 Add frexp, as a command because it returns two things really 2025-12-31 16:03:59 +00:00
apnadkarni 51496a2651 Remove Tcl_WinErrorRaise and Tcl_WinAppendMessageFromModule from TIP 744. 2025-12-31 13:12:14 +00:00
apnadkarni 281428f191 Merge main 2025-12-31 12:27:31 +00:00
dkf b5706604db More functions 2025-12-31 08:48:09 +00:00
jan.nijtmans 770744c4b7 Other compiler warnings (e.g. unused variables) 2025-12-30 23:30:21 +00:00
jan.nijtmans d44b58aef0 This registry version won't work with Tcl 9.0 any more 2025-12-30 23:08:40 +00:00
jan.nijtmans d618a84229 Fix compiler warnings, seen with clang version 14.0.0 2025-12-30 20:55:44 +00:00
dkf c1afb2bf14 Added trunc() 2025-12-30 15:01:05 +00:00
apnadkarni 1152d49b83 Don't shimmer source (abstract) list in join 2025-12-30 11:00:34 +00:00
apnadkarni 2d4ddb2d3e Merge 9.0 - Add Windows console test for command line editing. 2025-12-30 06:03:25 +00:00
apnadkarni 0cb215abaf Add Windows console test for command line editing. 2025-12-30 06:00:59 +00:00
apnadkarni b7ad3f04e3 Undo commit [8bd8683896]. Restricting to characters breaks console command line editing. 2025-12-30 05:48:46 +00:00
apnadkarni 31a97150ff Merge mark 2025-12-30 03:45:39 +00:00
apnadkarni 6d6a358ab5 Merge 8.6 Fix [983f933f11] UBSan warnings with null pointer in TclGetProcessGlobal/Tcl_ExternalToUtfDString. 2025-12-30 03:44:40 +00:00
apnadkarni 1ff15b4aec Fix [983f933f11] UBSan warnings with null pointer in TclGetProcessGlobal/Tcl_ExternalToUtfDString. 2025-12-30 03:26:20 +00:00
apnadkarni 25a1327006 Fix [983f933f11] UBSan warnings with null pointer in TclGetProcessGlobal/Tcl_ExternalToUtfDString. 2025-12-30 03:10:18 +00:00
dkf 67bee097dd Fix tests 2025-12-29 21:41:06 +00:00
dkf 267b3bbd8a Added documentation for new functions 2025-12-29 17:08:17 +00:00
dkf 755ff2f5a0 Some more functions 2025-12-29 15:46:35 +00:00
dkf 3ebf79647a More functions from the set available in C11 2025-12-29 15:23:31 +00:00
apnadkarni 206e0d6a80 Eliminate superfluous input notifications for metakeys in Windows console channel 2025-12-29 10:55:21 +00:00
apnadkarni 4f60bae538 Bug [59bee3a3a7]. Fix file delete/rename to handle files with readonly ACL's 2025-12-29 09:59:26 +00:00
apnadkarni 47ac163af6 Add blurb to docs that file rename may not preserve attributes and ACL's. This has always been true. 2025-12-29 09:45:07 +00:00
apnadkarni 796da4dd62 Adapt test for GH CI which does not seem to have a HKCU/Microsoft registry key 2025-12-29 08:11:43 +00:00
apnadkarni 5de909844c Fix up source ACL when renaming files. Intentionally not done for destination. 2025-12-29 07:02:46 +00:00
jan.nijtmans 9aae16c2da Please, don't use 'unsigned long' in public API. It suggests it might be > 32 bits, but it isn't. This causes problems on Cygwin 2025-12-28 21:13:27 +00:00
jan.nijtmans 12b4394ef4 Update nmakehlp.c 2025-12-28 19:17:42 +00:00
apnadkarni b179e16341 Missed freeing a memory allocation in error case. 2025-12-28 18:13:52 +00:00
apnadkarni 034e32b97d Reset ACL if needed when deleting a file 2025-12-28 18:05:28 +00:00
jan.nijtmans 763496ea0b Update nmakehlp.c 2025-12-28 17:54:21 +00:00
dkf 2b772a3fad merge trunk 2025-12-28 16:26:11 +00:00
dkf 0b224e8854 Fix some indentation of comments 2025-12-28 16:19:26 +00:00
apnadkarni 75a859f179 Require Win10 in tclWinPort.h 2025-12-28 14:39:15 +00:00
jan.nijtmans 0c0226384d Merge 9.0 2025-12-28 13:48:33 +00:00
jan.nijtmans 747cc23028 consistancy in using 'unsigned int' vs 'unsigned' 2025-12-28 13:41:42 +00:00
jan.nijtmans 5d6c030d46 Option string array used by Tcl_GetIndexFromObj should _ALWAYS_ be 'static const'! 2025-12-28 13:20:11 +00:00
jan.nijtmans c45cb186a7 Add some missing static/const keywords 2025-12-28 13:09:49 +00:00
jan.nijtmans eb1933f7b7 Add some missing static/const keywords. Backport some formatting from 9.1 2025-12-28 12:41:57 +00:00
dkf 4ef9f71b24 Update docs 2025-12-28 12:37:51 +00:00
dkf 781608aebf Tinkering with making the interpreted [lfilter] better 2025-12-28 12:26:37 +00:00
apnadkarni 092d8c012e Consolidate one more Windows getversion call 2025-12-28 11:57:02 +00:00
dkf 99f499aa5d Fix things to work as the TIP now specifies 2025-12-28 11:47:53 +00:00
apnadkarni ffdb35141e Merge 9.0 - Fix [7b46bc7f85] UBSan on binary uuencode 2025-12-28 11:15:48 +00:00
apnadkarni 038a90c85a Fix [7b46bc7f85] UBSan on binary uuencode 2025-12-28 11:11:51 +00:00
dkf 7077ca618c Mark the places in need of fixing to match the TIP 2025-12-27 17:56:20 +00:00
jan.nijtmans 2d7fac98e3 Unbreak Linux/MacOS build. Merge trunk 2025-12-27 17:43:22 +00:00
jan.nijtmans 8757cac3b1 Merge 9.0 2025-12-27 17:30:04 +00:00
jan.nijtmans 514c153d1c Move 'undef Tcl_WinConvertError' from tclStubInit.c to tclPlatDecls.h: This function is only meant for Windows 2025-12-27 17:26:03 +00:00
dkf 95115b924a merge trunk 2025-12-27 16:28:39 +00:00
dkf 8e9782af31 Better, backward-compatible compilation of [lseq] 2025-12-27 15:41:52 +00:00
dkf 8916ad9069 Tidy up macros/comments to be less cluttered 2025-12-27 15:36:10 +00:00
dkf 2d45bdf172 Compile-time-known numbers get different handling; fixes the tests (an efficiency boost and cheat, but it's for an edge case of an edge case) 2025-12-27 15:24:08 +00:00
dkf 4096778c00 Better compilation for [lseq], but fails some tests on error messages 2025-12-27 13:17:05 +00:00
apnadkarni 87338d6dac Distinguish between tests that are purely syntactic and those requireing disk access 2025-12-27 07:06:31 +00:00
apnadkarni 857934211e Merge main 2025-12-27 06:29:39 +00:00
apnadkarni 4b9d491758 ENAMETOOLONG no longer an error 2025-12-27 06:28:49 +00:00
apnadkarni bf62229015 Add tests for file link,lstat 2025-12-27 03:46:24 +00:00
apnadkarni 5cae4b34ec Add long path support for reading directory links 2025-12-26 16:59:42 +00:00
apnadkarni 07eb18729e Add long path support for writing directory links 2025-12-26 16:13:52 +00:00
dkf e130e456c7 merge trunk 2025-12-26 16:06:00 +00:00
apnadkarni 7aa1ffd078 More informative errors from registry command 2025-12-25 11:50:25 +00:00
apnadkarni ad0215bc62 Tcl_WinRaiseError and tests 2025-12-25 09:59:29 +00:00
jan.nijtmans eabdc17537 Fix a few -Wconversion warnings 2025-12-24 20:39:19 +00:00
apnadkarni 312a960dfd Merge main 2025-12-24 17:24:59 +00:00
apnadkarni 1365b67dc9 Oops. Don't use Windows types in stubs 2025-12-24 17:23:10 +00:00
jan.nijtmans 5b3eb9f3c8 Fix html generation: Encoding: process-text: impotent font change 2025-12-24 17:07:33 +00:00
apnadkarni 3ffaa9bf86 Kick off TIP 744 with long path support and exported Win32 error formatting 2025-12-24 17:01:40 +00:00
apnadkarni a28ef6a7dd zipfs mount test 2025-12-24 09:23:10 +00:00
apnadkarni 55e8b928f1 Add tests for file ops and glob 2025-12-24 06:06:58 +00:00
apnadkarni ca4cbf6b5b Fix native path generation for long paths and tests for path syntax and directory ops 2025-12-23 16:43:24 +00:00
jan.nijtmans a53f596c32 Fix a few -Wconversion warnings 2025-12-23 14:55:57 +00:00
dkf 7c28821305 merge trunk 2025-12-23 14:06:44 +00:00
dkf 8cada016be Make TclOO use bool a bit more internally in places that already logically did so 2025-12-23 13:57:47 +00:00
dkf 10c0ce7a65 fix some indentation 2025-12-23 13:55:36 +00:00
dkf 22865a28af merge trunk 2025-12-23 13:51:12 +00:00
dkf 533993364f A few more bools... and fix some index counter sizes 2025-12-23 12:27:41 +00:00
apnadkarni 654f4416a9 Test directory ops on long paths 2025-12-23 11:54:11 +00:00
apnadkarni dcfa6e01c1 Consolidate Windows system information that is always needed 2025-12-23 09:23:40 +00:00
apnadkarni e28e2df1da Eliminate redundant initialization calls 2025-12-22 16:58:02 +00:00
apnadkarni 81749ce917 Update changes.md for TIP 737 2025-12-22 15:40:28 +00:00
jan.nijtmans 5ed1e677ee Merge 9.0. Fix indenting 2025-12-22 09:44:00 +00:00
jan.nijtmans b82b383346 Update changes 2025-12-22 08:36:54 +00:00
jan.nijtmans e4be979e01 (backport): Fix warnings about redefined macros in macOS tclPkgConfig.c
Fix [632710f6b7]: Check for -municode doesn't work on WSL
2025-12-22 08:30:05 +00:00
apnadkarni f9c22a493f Split zipfs initialization into interp-specific and independent parts 2025-12-22 04:36:25 +00:00
jan.nijtmans a04626d182 In case of version conflict (e.g. opening 9.0 pkgIndex in 8.6), ignore the file. Backported from 9.0 2025-12-21 23:26:48 +00:00
dkf a102590064 merge trunk 2025-12-21 17:42:35 +00:00
dkf 0cf9b383ce Fix obvious error 2025-12-21 17:39:20 +00:00
apnadkarni bb270178af Merge main 2025-12-21 06:12:55 +00:00
apnadkarni cb7575c4f2 TIP 737 2025-12-21 03:49:43 +00:00
jan.nijtmans 4458e68f7e Fix pkgconfig-1.1 testcase 2025-12-20 16:51:06 +00:00
dkf 68fe6a4467 merge trunk 2025-12-19 21:05:48 +00:00
jan.nijtmans b05ef954c2 (backport): Fix warnings about redefined macros in macOS tclPkgConfig.c. Backport support for WINE 2025-12-19 14:52:35 +00:00
jan.nijtmans cc852a9639 Proposed fix for [632710f6b7]: Check for -municode doesn't work on WSL. Also add /HIGHENTROPYVA:NO to NMAKE build 2025-12-19 09:40:32 +00:00
culler bbe049a7cc Fix warnings about redefined macros in macOS tclPkgConfig.c 2025-12-19 02:44:24 +00:00
oehhar 1903e1430b TIP-723 timer: remove unused variable (found by CI on Linux) 2025-12-17 10:27:56 +00:00
sbron a717006fbd Tcl_GetMonotonicTime() must return the calculated value to be useful. 2025-12-17 09:18:03 +00:00
oehhar 94b5acc860 TIP-723 timer: "timer cancel $id" does not fail on unknown $id 2025-12-17 07:12:16 +00:00
apnadkarni c5f559998c Fix tclsh manifest longPathAware element 2025-12-17 03:29:01 +00:00
apnadkarni 5ff4489184 Permit long path in TCL_LIBRARY env var 2025-12-16 17:39:17 +00:00
apnadkarni 2a99369f87 Allow Tcl to run from directories deeper than MAX_PATH 2025-12-16 16:00:17 +00:00
oehhar 9818aa388f TIP-723 timer: correct C syntax error in Linux found by CI runner. 2025-12-16 12:19:06 +00:00
apnadkarni cf245f038e Support long paths for exec and user home 2025-12-16 06:05:22 +00:00
apnadkarni d5f81cd27a Merge main 2025-12-16 05:17:18 +00:00
jan.nijtmans fa73807403 Merge-mark 2025-12-15 17:53:18 +00:00
jan.nijtmans bacfd45f77 Update workflow actions to latest versions: upload-artifact, download-artifact 2025-12-15 17:47:39 +00:00
oehhar 412e2f7559 merge main 2025-12-15 17:36:40 +00:00
oehhar d1bcd49c98 TIP-723 timer: fail on unknown "timer cancel". No script argument to "timer cancel". 2025-12-15 17:36:05 +00:00
apnadkarni 6f9e742283 A few more bits for long path support 2025-12-15 17:11:36 +00:00
dkf cd8866e74a Update workflow actions to latest versions: upload-artifact, download-artifact 2025-12-15 17:07:32 +00:00
oehhar b433f2ddb9 TIP-723 timer: correct "wrong# of args" messages. Only allow one script argument to "timer idle|cancel" 2025-12-15 16:32:29 +00:00
oehhar 6f060150da merge main and adapt to Tcl_ObjCmdProc2 interface 2025-12-15 15:06:14 +00:00
oehhar 45028061d8 TIP-723 timer: timer delay function with different option "sleep" than event function 2025-12-15 14:49:14 +00:00
apnadkarni c411f49feb Add manifest for longpath. Add test function to check system support 2025-12-15 13:42:29 +00:00
apnadkarni d7d83cec8f Implement long filename support for DoRenameFile on Windows 2025-12-15 10:40:46 +00:00
jan.nijtmans 455e3b53b0 Merge 9.0 2025-12-15 09:06:13 +00:00
jan.nijtmans 8ce8fdb4d9 tzdata updated to Olson's tzdata2025c 2025-12-15 09:04:16 +00:00
jan.nijtmans 6367777142 tzdata updated to Olson's tzdata2025c 2025-12-15 09:02:12 +00:00
jan.nijtmans 416f01cad5 (backport) Bug [982651f543] - Remove test for mutex thread fairness as not guaranteed by OS. Timeouts suffice to ensure no deadlocks. 2025-12-15 08:56:48 +00:00
apnadkarni f902a25226 Start on Windows long path support 2025-12-15 05:02:52 +00:00
apnadkarni 719c3b5099 Bug [982651f543] - Remove test for mutex thread fairness as not guaranteed by OS. Timeouts suffice to ensure no deadlocks. 2025-12-14 15:42:57 +00:00
jan.nijtmans 8d0acfb51c TIP #626 implementation: Command arguments > 2^31 elements 2025-12-12 12:09:24 +00:00
jan.nijtmans 02a47f45d3 use more 'bool' internally 2025-12-12 08:36:32 +00:00
dkf 27d23d0123 Use bool in various internal TclOO APIs. No change to public API. 2025-12-11 17:15:20 +00:00
jan.nijtmans e156373629 'make genstubs' needs a void argument, otherwise stub generation doesn't work as expected 2025-12-11 11:47:13 +00:00
oehhar 9ab4de0eed TIP-723 timer: take overflow protected version by Ashok, which I did not understand in a first run. Sorry. 2025-12-11 10:36:34 +00:00
oehhar 0c40115f4e TIP-723 timer: split TimerDelay in a monotonic function to take advantage of the long long time argument. Simplifies TimerInCmd and AfterCmd. Code dublication may be rejoined, if it works. 2025-12-10 21:43:08 +00:00
oehhar 640cd94d54 TIP-723 timer: add TclCreateMonotonicTimerHandler with long long time argument, not optimized jet. 2025-12-10 21:16:10 +00:00
oehhar f3e3753601 TIP-723 timer: change Tcl_GetMonotonicTime to return a long long value instead of Tcl_Time. No optimizations jet. 2025-12-10 20:31:00 +00:00
apnadkarni 40078b9e8b Merge trunk 2025-12-10 06:51:24 +00:00
oehhar 18525035ce Merge main 2025-12-09 12:48:09 +00:00
jan.nijtmans 94913dce62 Rebase to trunk 2025-12-09 12:31:10 +00:00
jan.nijtmans db5559bb67 Testcase binary-17.4 only works on 64-bit machines. 2025-12-09 12:29:08 +00:00
oehhar 28842292ad TIP-723 timer: limit passed time to LLONG_MAX/1000000 seconds 2025-12-09 11:45:14 +00:00
oehhar d84248fe7e TIP-723 timer: replace "clock microseconds -monotonic" by "clock monotonic" -> Sergey had this too, THANKS ! 2025-12-09 11:01:51 +00:00
jan.nijtmans f0514f0af8 Fix [97742634f9]: file volumes returns "//zipfs:" as first element when not explicitely mounted (doc update) 2025-12-09 09:12:44 +00:00
oehhar 115b57c6f9 TIP-723 timer: fix clock tests. Add overflow test of time of timer info. 2025-12-09 08:44:53 +00:00
apnadkarni 76edd56adf Fix Windows monotonic time overflow for systems running a few days 2025-12-09 03:58:44 +00:00
jan.nijtmans a7e8a28419 Merge trunk 2025-12-08 21:49:17 +00:00
jan.nijtmans b8b264033d Use more Tcl_Size in 'binary format'. Add testcase (thanks, Ashok\!) 2025-12-08 21:37:39 +00:00
jan.nijtmans 83dc3db799 Merge 9.0 2025-12-08 20:54:35 +00:00
jan.nijtmans 1870271186 Update to burnett01/rsync-deployments@8.0.2 2025-12-08 20:43:15 +00:00
dgp 9567956809 Repair broken build 2025-12-08 16:21:19 +00:00
apnadkarni f2c7dba245 Fix test syntax 2025-12-08 14:03:51 +00:00
Torsten b70b532627 renamed doc/Unicode.n to start with a lower-case letter in line with the other files of section n, added missing '?' in syntax for the optional -profile argument 2025-12-08 12:12:38 +00:00
oehhar dd5298cf47 TIP-723 timer: implement "clock microseconds ?-wallclock|-monotonic? 2025-12-08 11:53:08 +00:00
oehhar b486daf209 TIP-723 timer: implement "timer info" with monotonic/wallclock and event time 2025-12-08 11:22:15 +00:00
jan.nijtmans 697af51267 Merge 9.0 2025-12-08 10:07:51 +00:00
jan.nijtmans b5382ae2eb Protect ChildInvokeHidden() from invalid number of arguments (backported from 9.1) 2025-12-08 10:06:22 +00:00
jan.nijtmans 58490bcbe0 callback type is an int, not a long 2025-12-08 09:47:26 +00:00
jan.nijtmans 27c027d483 Account for unsupported commands in testcases 2025-12-08 09:27:46 +00:00
jan.nijtmans 13fc67d142 Merge 9.0 2025-12-08 08:44:40 +00:00
jan.nijtmans 87ee85f344 Update changes 2025-12-08 08:38:16 +00:00
jan.nijtmans c57ff04ff4 Fix [82d12c9ce324bc0f]: unsupported commands should not be available in safe interpreters 2025-12-08 08:30:39 +00:00
jan.nijtmans 997b3e997b merge-mark 9.0. Fix indenting 2025-12-07 21:36:46 +00:00
jan.nijtmans c7ada0329e Fix [cd0d28eab9]: regexec.c: GCC -Wtype-limits warning 2025-12-07 20:51:19 +00:00
jan.nijtmans 22a068ade3 Fix [cd0d28eab9]: regexec.c: GCC -Wtype-limits warning 2025-12-07 20:37:38 +00:00
culler 259e84be1e Fix pkgconfig paths for the macOS framework build. 2025-12-07 04:26:06 +00:00
culler 967a252178 Fix pkgconfig paths for the macOS framework build. 2025-12-07 04:25:03 +00:00
jan.nijtmans bf628e2f28 More 'bool' usage, mainly for the notifier 2025-12-05 15:41:16 +00:00
apnadkarni 7bfac6b253 Merge main 2025-12-05 13:53:51 +00:00
apnadkarni 44a951b9d5 Merge main 2025-12-05 13:18:55 +00:00
oehhar 105722f12a TIP-723 timer: move timer in/at time spec from "s us" to "time unit", only support command list, do overflow check in after num 2025-12-04 17:46:33 +00:00
jan.nijtmans 8d1d86bfd4 Move setlocale() initialization out of TclpInitPlatform(), since it should be the same on all platforms. 2025-12-04 10:35:57 +00:00
jan.nijtmans 8e6e8c8b82 Merge 9.0 2025-12-03 23:19:26 +00:00
jan.nijtmans cdef381f89 Merge 8.6. Backport some formatting from 9.1 2025-12-03 23:11:28 +00:00
jan.nijtmans b9b15fb036 Fix [6f1dd8a1be]: tclMacOSXNotify.c: function pointer cast to incompatible type 2025-12-03 23:01:08 +00:00
apnadkarni 83199c3e61 Merge 9.0 - Three more int->Tcl_Size doc fixes. 2025-12-02 16:21:05 +00:00
apnadkarni aba5e27340 Three more int->Tcl_Size doc fixes. 2025-12-02 16:19:30 +00:00
jan.nijtmans d2ce4ccd08 Update to appleboy/ssh-action@v1.2.4 2025-12-01 21:06:21 +00:00
jan.nijtmans 7376289157 Update to appleboy/ssh-action@v1.2.4 2025-12-01 20:57:11 +00:00
oehhar 43aba05595 Merge main 2025-12-01 14:22:38 +00:00
oehhar 1f5d8f8b59 tip-723 timer: guard Tcl_CreateTimerHandlerMicroSeconds against calculation overflow. 2025-12-01 14:15:45 +00:00
oehhar bbdd2c7000 tip-723 timer: guard against test interference again 2025-12-01 13:55:13 +00:00
oehhar 8a18bce67a tip-723 timer: guard against test interference, as shown in recent mac CI 2025-12-01 13:46:27 +00:00
jan.nijtmans 7f1de51506 Rebase to trunk 2025-11-30 21:02:31 +00:00
dkf 56a3437779 Better comments on the Tcl_ObjType instances 2025-11-30 12:57:20 +00:00
apnadkarni 4da1099856 Further refactoring of Encoding.3 manpage 2025-11-30 08:59:35 +00:00
apnadkarni 103db9d156 Update and refactor Encoding.3 manpage 2025-11-30 06:18:01 +00:00
dkf e001b9e2d6 Minor changes: whitespace/formatting improvements. 2025-11-28 16:09:45 +00:00
oehhar 47f0a7470c TIP-723 timer: make overflow detection gcc optimizer save: https://stackoverflow.com/questions/3944505/detecting-signed-overflow-in-c-c 2025-11-28 12:20:36 +00:00
jan.nijtmans 01bfb63675 Fix compiler warning on UNIX 2025-11-27 16:09:38 +00:00
jan.nijtmans fd3a530dcf Add missing autoconf stuff 2025-11-27 15:52:00 +00:00
jan.nijtmans 899eb10624 Some review remarks: update tcl.decls too, use 'long long' parameters, some C warnings 2025-11-27 15:38:04 +00:00
jan.nijtmans ad63fa744c Rebase to 9.1 2025-11-27 14:42:39 +00:00
oehhar 6f21c9534f Tip-723 timer: check for numerical overflow, test cases 2025-11-27 14:40:48 +00:00
jan.nijtmans 12bb14b764 Remove all SEH handling. See [https://core.tcl-lang.org/tk/tktview/44b34c6152|44b34c6152] for the reason behind it. 2025-11-27 14:30:43 +00:00
jan.nijtmans d4bbb988ef Add a proper switch for _Generic testing c11 capability 2025-11-27 13:28:21 +00:00
apnadkarni 52112d6c37 Raise error on count overflow for old API only if caller had asked for counts 2025-11-27 11:14:24 +00:00
oehhar 7b4f454bcc TIP-723 timer: start test cases, process both queues simultaneously in the event system 2025-11-27 08:59:38 +00:00
apnadkarni 43531ca027 Add tests for character limits across INT_MAX, UINT_MAX 2025-11-27 02:37:41 +00:00
apnadkarni d0a6ccf035 Tests for space limits at INT_MAX and UINT_MAX 2025-11-26 11:07:03 +00:00
jan.nijtmans 0f14a81564 Rebase to trunk 2025-11-26 09:24:29 +00:00
jan.nijtmans 1ba737e1ee Merge trunk 2025-11-26 09:22:13 +00:00
jan.nijtmans 7c89068ac6 Merge 8.6 2025-11-26 09:20:17 +00:00
Torsten 483904a250 ups, merged unintended fork 2025-11-26 00:05:17 +00:00
Torsten 725112bbb1 fix typo in coroutine manual page 2025-11-25 23:47:40 +00:00
jan.nijtmans 4a912e68b8 Don't use strange syntax for MoveFileW 2025-11-25 21:45:51 +00:00
oehhar 3dda6e3d27 TIP-723 timer: Add Tcl_SleepMicroSeconds and Tcl_CreateTimerHandlerMicroSeconds 2025-11-25 20:59:44 +00:00
jan.nijtmans c25f4a9b1a Always define noinline flag to DllMain, to prevent optimizer flag -O3 to cause problems 2025-11-25 18:56:27 +00:00
jan.nijtmans b5ff2e7c90 Don't use strange syntax for MoveFileW 2025-11-25 16:28:07 +00:00
jan.nijtmans 888b34cce0 Just Remove all SEH handling, it appears to cause more harm than it solves anything. 2025-11-25 16:21:16 +00:00
dkf acb8c6e3dc Mark socket-12.3 as a knownBug due to crashes on Windows 11, duplicate to 12.4 as a non-crashing version 2025-11-25 14:19:58 +00:00
jan.nijtmans 4ad500f523 Rebase to trunk 2025-11-25 11:27:19 +00:00
apnadkarni d94c5745b0 Added tests for encoded chars fragmented across INT_MAX, UINT_MAX lengths 2025-11-25 10:25:57 +00:00
jan.nijtmans 1411007962 Merge 9.0 2025-11-25 08:14:15 +00:00
jan.nijtmans ada69a4659 Merge 8.6 2025-11-25 08:13:01 +00:00
jan.nijtmans 415a4663fe Update to actions/checkout@v6 2025-11-25 08:07:32 +00:00
dkf 396bc72017 Fix more test fragility with space-containing directory names 2025-11-24 21:30:57 +00:00
jan.nijtmans 35019ed827 Update to utf8proc-2.11.2 2025-11-24 12:15:17 +00:00
jan.nijtmans e1d066aad0 Try to add the -std:c11 compiler flag 2025-11-24 10:10:00 +00:00
jan.nijtmans a277057794 Use _Generic() to select function type 2025-11-23 20:43:58 +00:00
dkf 9aada55885 Make two tests work in a directory with a space in the name 2025-11-23 15:18:13 +00:00
apnadkarni 270f5a6783 Remove redundant errorLocPtr parameter from new Utf API 2025-11-23 11:03:48 +00:00
apnadkarni 4bfe47dedb Fix gcc (benign) warnings 2025-11-23 10:22:46 +00:00
apnadkarni 550a91e670 Merge trunk 2025-11-23 09:31:34 +00:00
apnadkarni b9ab93b943 Fix gcc15 (benign) warnings on Windows 2025-11-23 09:26:17 +00:00
apnadkarni 4434e84a99 Fix gcc15 (benign) warnings on Windows 2025-11-23 09:19:06 +00:00
apnadkarni cfb01735e8 oops, remove tracing puts 2025-11-23 05:45:22 +00:00
apnadkarni 601b787c14 Limit testcases for large strings to first two samples 2025-11-23 05:36:18 +00:00
dkf eeace491a2 Some bits and pieces recovered from an old branch; the rest of the old branch can be ignored 2025-11-22 14:22:35 +00:00
dkf 24b419fd5a More bits and pieces 2025-11-22 14:17:14 +00:00
apnadkarni 67c2c9592f More progress on large data tests for encodings 2025-11-22 11:18:13 +00:00
apnadkarni aa0969923c Replace Tcl condition variable implementation with native Windows 2025-11-22 03:05:45 +00:00
apnadkarni 7936046685 Merge 9.0 - Define TUTF-8 encoding and Tcl values. 2025-11-22 02:45:23 +00:00
apnadkarni 80747d385e Define TUTF-8 encoding and Tcl values. 2025-11-22 02:40:20 +00:00
dkf 462d5db13c Changes rescued from an old branch 2025-11-21 20:22:48 +00:00
jan.nijtmans 29dd4281a9 Merge 9.0 2025-11-21 15:46:02 +00:00
jan.nijtmans ebde9d0ff2 consistancy in documentation for ?arg ...? 2025-11-21 15:43:54 +00:00
jan.nijtmans 604a5267ce Merge 9.0 2025-11-21 14:37:28 +00:00
jan.nijtmans 70bbb79096 consistancy in handling 'package require' and in variable arguments 2025-11-21 14:05:18 +00:00
jan.nijtmans 7746b6962f Merge-mark 2025-11-21 13:23:33 +00:00
jan.nijtmans 4463e96bca Fix [0fac6dd541]. Remove duplicated docs for tcl_wordchars etc. from tclvars.n 2025-11-21 13:22:26 +00:00
jan.nijtmans 8c8aa6827d Merge 9.0 2025-11-21 11:15:11 +00:00
jan.nijtmans ec287b02db Merge 8.6 2025-11-21 11:14:30 +00:00
jan.nijtmans ff414ae156 simplify package.list.txt: Casing variants no longer needed 2025-11-21 11:06:07 +00:00
jan.nijtmans 5dbdfc48c0 Update to utf8proc 2.11.1 2025-11-21 10:11:18 +00:00
apnadkarni 9bb6396860 Keep TUTF-8 description in Utf.3 and reference from other pages 2025-11-20 16:57:26 +00:00
oehhar 92335538e0 TIP-723 timer: fix errors found by continuous integration run. 2025-11-20 16:57:16 +00:00
apnadkarni d511e8154c Fix header directives in Tcl.n 2025-11-20 16:25:01 +00:00
apnadkarni b1b8241b23 Merge 9.0 2025-11-20 09:49:44 +00:00
apnadkarni a3322d8d74 Merge main 2025-11-20 09:46:17 +00:00
oehhar 18343a0b05 tip-723 timer: remove Tcl_SleepMonotonic, switch Tcl_CreateTimerHandler to monotonic time 2025-11-19 17:37:02 +00:00
oehhar 2d3601fdfe tip-723 timer: fix compiler issues found by CI run 2025-11-19 17:08:52 +00:00
apnadkarni 9b2263fc36 Make encoding tests more flexible. Not all encodings support ASCII chars 2025-11-19 11:58:32 +00:00
oehhar 6b6d4fd3d8 TIP-723 timer: remove TIP 233, call panic on Tcl_SetTimeProc and Tcl_QueryTimeProc 2025-11-18 21:02:09 +00:00
oehhar 3caa166541 TIP-723 timer: switch after to monotonic clock 2025-11-18 20:06:18 +00:00
apnadkarni 160f99ff67 Enable tests for > INT_MAX inputs 2025-11-18 15:51:24 +00:00
sebres 216564bc15 merge 9.0 (fixes clock validation bug [2a1d947d8c13506d]) 2025-11-17 16:56:33 +00:00
sebres fdb7c6d313 merge point (back)
cherry-picked from [309b28d3f5335753]
2025-11-17 16:50:12 +00:00
sebres fb44d9a8d8 fixes validation bug [2a1d947d8c13506d] - update gregorian flag during validation, before checking day in leap year, so consider julian-gregorian transition correctly (old logic for leap year without y/100 and y/400);
cherry-picked from [309b28d3f5335753]
2025-11-17 16:46:25 +00:00
sebres 5c7b05986c fixes validation bug [2a1d947d8c13506d] - update gregorian flag during validation, before checking day in leap year, so consider julian-gregorian transition correctly (old logic for leap year without y/100 and y/400) 2025-11-17 16:30:24 +00:00
apnadkarni 0fcfd1fd93 Adapt testencoding command for Tcl_Size buffers 2025-11-17 10:58:36 +00:00
apnadkarni 4e32ce17c7 Merge 9.0. Fix type of dstLen in Encoding.3 2025-11-17 10:29:00 +00:00
apnadkarni b9d1fb963d Fix type of dstLen in Encoding.3 2025-11-17 10:26:24 +00:00
oehhar 79d1ebdf2e tip-723 timer: fix stupid errors, test suite now clean (except one intended error) 2025-11-16 19:24:34 +00:00
apnadkarni f8fc868b27 Add Tcl_UtfToExternalEx + support for NO_TERMINATE 2025-11-16 10:05:58 +00:00
oehhar bbb328cf41 TIP 723: advanced to nearly complete implementation on windows. Unfortunately, Test stall, to investigate. 2025-11-15 18:54:33 +00:00
apnadkarni bba1700dd1 Add some asserts for logic validation 2025-11-15 16:46:21 +00:00
dkf 37de7db00b Create an enum from some related defines 2025-11-15 14:01:57 +00:00
apnadkarni c95383dec9 Add new functions to stubs. Add support for error location 2025-11-15 05:38:11 +00:00
jan.nijtmans 56fac4430a Proposed fix for [82d12c9ce3]: unsupported commands should not be available in safe interpreters 2025-11-14 23:53:08 +00:00
sebres a57d0732e1 rewrite BCE/gregorian members as flags: CLF_BCE - for BCE, CLF_BGREG - for before Gregorian (in Julian calendar) 2025-11-14 20:45:14 +00:00
sebres fe25491331 win/Makefile.in: add tclDate.h dependencies 2025-11-14 20:42:25 +00:00
sebres c5ee92b3c7 small amend: adjust gregorian flag after julianDay calculation in GetJulianDayFromEraYearWeekDay too 2025-11-14 20:32:50 +00:00
sebres 7d4daa28ea fixes validation bug [2a1d947d8c13506d] part 1 - update gregorian flag during validation, before checking day in leap year, so consider julian-gregorian transition correctly (old logic for leap year without y/100 and y/400) 2025-11-14 18:51:32 +00:00
sebres 62c1e320d0 test illustrating incorrect handling of julian-gregorian transition (validation bug nr.1 in [2a1d947d8c13506d] - so validation of day in leap year doesn't consider gregorian flag correct) 2025-11-14 18:48:32 +00:00
apnadkarni b3923c05aa Pass tests for external->utf 2025-11-14 17:38:58 +00:00
jan.nijtmans 49866499aa Merge-mark 2025-11-14 16:22:57 +00:00
jan.nijtmans 34bccf98f4 (partial backport): Refactor core ensemble creation/management 2025-11-14 16:21:11 +00:00
dkf 4dcc8a7e36 More places where we need quoting to handle spaces in file paths (thanks, Windows...) 2025-11-14 15:24:39 +00:00
dkf 703e94dd1f merge trunk 2025-11-14 11:57:56 +00:00
apnadkarni 045ab17905 Merge trunk/apn-encoding-refactor 2025-11-14 07:59:09 +00:00
apnadkarni cddd64df98 Merge trunk 2025-11-14 07:58:23 +00:00
apnadkarni 7b1cfa5b69 Oops, forgot one argument not currently used 2025-11-14 07:57:19 +00:00
apnadkarni 34a4813f20 First cut at Tcl_ExternalToUtfEx 2025-11-14 07:53:05 +00:00
jan.nijtmans f61a583807 Rebase to trunk 2025-11-13 20:36:46 +00:00
oehhar 4ed7a9f454 Tip 723 (timer): first sketch of "timer in". 2025-11-13 19:53:25 +00:00
apnadkarni 1f01feceee Merge 9.0 - Bug [e56486a2] - check for negative lengths, not equality with TCL_INDEX_NONE 2025-11-13 17:08:35 +00:00
apnadkarni 6bbbafe22b Bug [e56486a2] - check for negative lengths, not equality with TCL_INDEX_NONE 2025-11-13 16:54:07 +00:00
dkf 0c0a16cd0c Added docs 2025-11-13 15:46:07 +00:00
jan.nijtmans 79165f2443 merge-mark 2025-11-13 15:17:04 +00:00
jan.nijtmans e2902e4094 Add testcase, format 2025-11-13 15:16:26 +00:00
dkf 02bd0c8b01 Add tests 2025-11-13 15:09:48 +00:00
dkf 0c18669c7f Tidy up 2025-11-13 15:06:26 +00:00
jan.nijtmans 160edc816a merge-mark 2025-11-13 09:02:41 +00:00
jan.nijtmans 272bf360ee Version => 9.0.4 2025-11-13 08:54:06 +00:00
sebres 559f6b3f3d improve TclCompareTwoNumbers (also fixes [8dd2807066d7]) - avoid interim copying of bignum internal representations 2025-11-12 21:50:12 +00:00
jan.nijtmans 08e51582df Two unneeded #undef's 2025-11-12 17:52:39 +00:00
dkf f6c8ffca89 merge trunk 2025-11-12 11:31:47 +00:00
apnadkarni 7e0465203b Merge trunk 2025-11-12 11:26:38 +00:00
dkf 9117b3d83f Make the Windows Makefile.in work with out-of-tree builds under a directory with a space in the name 2025-11-12 11:04:22 +00:00
dkf de0bbd0be4 Fix some bugs in the code generation and execution 2025-11-12 11:01:21 +00:00
apnadkarni 8e02828ee0 Check for negative lengths, not TCL_INDEX_NONE 2025-11-12 10:11:59 +00:00
dkf 541f81d7a6 merge trunk 2025-11-11 20:27:04 +00:00
dkf a261777400 Refactor core ensemble creation/management so that the tables describing what's there and what's safe are visible in the core of interpreter creation 2025-11-11 20:26:09 +00:00
dkf 80df571355 Clean up the TEBC TRACE macro system, using C11 variadic macros. 2025-11-11 16:57:49 +00:00
jan.nijtmans 94eefdb178 Bug [cb03e57a] - raise error on empty regexp if variable not resolvable. Update changes 2025-11-11 16:20:49 +00:00
jan.nijtmans 5638d340d6 Merge 9.0 2025-11-11 15:50:30 +00:00
jan.nijtmans bcd73c5cf8 Fix [8dd2807066] follow-up: two-argument 'max' had the same problem 2025-11-11 15:49:13 +00:00
dkf ac1b05952a Switch to using a new instruction to get the list index 2025-11-11 15:38:04 +00:00
jan.nijtmans 87210ab5ec Merge-mark 2025-11-11 13:10:46 +00:00
jan.nijtmans 2169de5d68 Fix Compilation problem on MacOS: ld: Undefined symbols: _Tcl_GetBoolFromObj, referenced from .... 2025-11-11 13:03:47 +00:00
jan.nijtmans 7d8eb2982f Add testcase, make CompareTwoNumbers a static function 2025-11-11 11:26:39 +00:00
jan.nijtmans 499e12375e Merge 9.0 2025-11-11 09:29:20 +00:00
jan.nijtmans e5d01d477c Update to appleboy/ssh-action@v1.2.3 2025-11-11 09:28:07 +00:00
jan.nijtmans a3d33fcca6 Fix [8dd2807066]: bug in single-argument 'max' with bignums 2025-11-11 08:04:59 +00:00
apnadkarni 8b961ecf64 Introduce encoding term TUTF-8 for Tcl's internal encoding. 2025-11-11 05:18:04 +00:00
sebres bf1c94998b improve ExprMaxMinFunc() (also avoid [8dd2807066d7]) - don't compare object with itself calling max() or min() with single argument 2025-11-10 19:42:19 +00:00
sebres eb1a100eb5 merge bug-8dd2807066d7-8.6-tbfo: fixes Tcl_TakeBignumFromObj() [8dd2807066d7] - avoid moving of bignum representation if object has no string representation (do copy in this case, e. g. to retain object as it is and stop EIAS violation) 2025-11-10 19:39:06 +00:00
sebres 325db98169 cherry-picked test from [ba330ef99a4fd2d9] illustrating bug [8dd2807066] - crash on expr(max()) 2025-11-10 19:32:20 +00:00
sebres 312a70295d fixes Tcl_TakeBignumFromObj() [8dd2807066d7] - avoid moving of bignum representation if object has no string representation (do copy in this case, e. g. to retain object as it is and stop EIAS violation) 2025-11-10 19:25:26 +00:00
dkf 922979cadf merge trunk 2025-11-10 17:03:59 +00:00
dkf 51d6bc3bda merge trunk 2025-11-10 17:00:34 +00:00
dkf d72083b6aa Name three related enums in a consistent way 2025-11-10 14:02:44 +00:00
jan.nijtmans 43e25b652b Update changes.md 2025-11-09 22:14:01 +00:00
dkf 645396c6ad merge trunk 2025-11-09 11:16:37 +00:00
apnadkarni 4408b39e81 Merge 9.0. Bug [cb03e57a] - raise error on empty regexp for unresolved variable. 2025-11-09 09:57:11 +00:00
apnadkarni c52eb2bac8 Bug [cb03e57a] - raise error on empty regexp for unresolved variable 2025-11-09 09:35:05 +00:00
jan.nijtmans 443ed34445 Fix [d4a4924ada]: 1rst example of chan doc refers to fconfigure command 2025-11-08 23:12:11 +00:00
jan.nijtmans 2318924b1d Fix [d4a4924ada]: 1rst example of chan doc refers to fconfigure command 2025-11-08 22:56:21 +00:00
jan.nijtmans f412c4548b Fix [45bfbebe]: some tests will fail if the system encoding is iso8859-1. Solution backported from 9.0 2025-11-08 22:50:47 +00:00
apnadkarni 6e47e34ab2 Bug [cb03e57a] - raise error on empty regexp if variable not resolvable 2025-11-08 07:41:31 +00:00
apnadkarni e399121e9a Fix constraints on unixInit-3.2. See https://sourceforge.net/p/tcl/mailman/message/59255593/ 2025-11-08 03:15:04 +00:00
sebres 44113797ec binary-80.5 (4GB test): add 2 dynamic constraints to ensure the data segment is large enough and it is possible to allocate such large block 2025-11-07 18:37:05 +00:00
apnadkarni 45428e8d0b Implement condition variables using native CONDITION_VARIABLE 2025-11-07 10:39:16 +00:00
apnadkarni 246edd55b3 Minor update to encoding docs 2025-11-07 10:38:31 +00:00
apnadkarni ac8edcf794 Attempt to clarify various encoding and string representation terms 2025-11-06 06:47:43 +00:00
apnadkarni ccb3dd5f64 Create new branch named "apn-doc-update" 2025-11-06 06:42:28 +00:00
dkf bf5538c6b2 Fix for bytecode-debug-level execution trace of [lmap] 2025-11-05 11:39:46 +00:00
dkf e59c343278 Compile [lfilter]; this is currently slightly wrong, but works if traces are ignored 2025-11-05 11:38:01 +00:00
jan.nijtmans b707471ccd Tcl 9.0.3 will include Itcl 4.3.5 2025-11-04 17:04:06 +00:00
jan.nijtmans ec78982cfa Tcl 9.0.3 will include thread 3.0.4 2025-11-04 08:30:31 +00:00
jan.nijtmans ae7824e072 Tcl 9.0.3 will (hopefully) include sqlite3 3.51.0 2025-11-04 08:07:45 +00:00
dkf 18e7acb361 Start of implementation of [lfilter] 2025-11-03 09:53:36 +00:00
oehhar a297a2c3cf TIP 723 timer: make "after cancel,idle,info" also accessible from timer ensemble, call timer implementations by after handler proc 2025-11-01 10:46:50 +00:00
oehhar 038eac6721 TIP 724 (timer): move TimerAtDelay, copy after cancel to TimerCancelCmd (currently duplicate) 2025-10-31 16:59:57 +00:00
oehhar ddde341843 TIP 723 (timer cmd): allow negative values to "timer at". Handle delay by time point intead difference. 2025-10-31 16:20:18 +00:00
dkf f57b75f595 merge trunk 2025-10-31 08:56:10 +00:00
dkf b58f9ecf62 Improve C declarations of slot methods; less of a horrible slab of dullness now 2025-10-30 16:48:33 +00:00
jan.nijtmans c367f4009c Rebase to trunk 2025-10-30 16:45:04 +00:00
jan.nijtmans 73d97022d7 Unset exec flag 2025-10-30 16:05:09 +00:00
jan.nijtmans 52aab10382 Undo exec flag 2025-10-30 15:17:00 +00:00
dkf da12f8810c merge trunk 2025-10-30 14:00:11 +00:00
jan.nijtmans dd137f2600 Merge 9.0 2025-10-30 13:47:30 +00:00
jan.nijtmans 40e5734024 Merge 8.6 2025-10-30 13:45:05 +00:00
jan.nijtmans f67a83f594 Fix [1cf49a0926] and [3161b74ca7]: Install man-pages and pkg-config on Windows 2025-10-30 12:41:41 +00:00
dkf c9c76c1326 modernise how the memory command works (the removal of [memory display] was documented in Tcl 8.4's changes...) 2025-10-30 12:19:15 +00:00
dkf 25e8d995cd modernise how the memory command works (the removal of [memory display] was documented in Tcl 8.4's changes...) 2025-10-30 12:15:03 +00:00
dkf f1d084814c merge trunk 2025-10-30 11:55:17 +00:00
apnadkarni 70e68a56fd Remove dead code and comments 2025-10-30 10:59:01 +00:00
apnadkarni 4598d2596c Merge trunk 2025-10-30 10:41:37 +00:00
apnadkarni 9cb7f17b50 Start on TIP 732 implementation 2025-10-30 10:25:37 +00:00
dkf c1390f9aac Remove duplicate local variable 2025-10-29 12:35:59 +00:00
jan.nijtmans c351683fd3 Merge 9.0' 2025-10-28 20:07:28 +00:00
jan.nijtmans 6e2d30107c Update to actions/upload-artifact@v5 2025-10-28 20:00:22 +00:00
dkf b51b2a7350 merge 9.0 2025-10-28 16:51:45 +00:00
jan.nijtmans 65f9981541 Fix [1cf49a0926]: Install pkgconfig on Windows 2025-10-28 08:21:13 +00:00
jan.nijtmans 834d0787e6 [3161b74ca7]: Install man pages on Windows 2025-10-27 19:44:40 +00:00
jan.nijtmans b4fbd2e8a8 Update to actions/download-artifact@v6 2025-10-27 18:00:36 +00:00
jan.nijtmans a24330a0a0 Add the "stdio-mingw" tag if Tcl is built without -D__USE_MINGW_ANSI_STDIO=0 (which is non-standard) 2025-10-27 15:09:38 +00:00
dkf baa6844a34 Clean up guts of hidden command invoking to shorten code paths; TclObjInvoke remains for stubs compat only 2025-10-27 11:42:20 +00:00
dkf c5d1f1bbc6 Restore some obsolete functionality 2025-10-27 11:35:43 +00:00
dkf 4626ed6db1 merge trunk 2025-10-27 11:21:03 +00:00
apnadkarni af2e80b713 Merge trunk 2025-10-27 08:13:03 +00:00
jan.nijtmans f9e7dc7aa1 Eliminate compiler warning (only seen in DEBUG) 2025-10-26 22:31:25 +00:00
jan.nijtmans 9b720c3749 [c7dc599e73] follow-up: for tclOO and internal headers too 2025-10-26 21:05:23 +00:00
oehhar c2d38e038a TIP 723: checkpoint: implement timer at command 2025-10-26 19:02:41 +00:00
jan.nijtmans 817ad4d5d0 On MSVC, <stdbool.h> is always needed, apparently 2025-10-26 11:33:42 +00:00
jan.nijtmans bf05b24a14 On MSVC, <stdbool.h> is always needed, apparently 2025-10-26 11:30:24 +00:00
jan.nijtmans f33d3f436d Merge 9.0 2025-10-25 22:47:28 +00:00
jan.nijtmans bd2370cf6a [c7dc599e73]: Add IWYU export pragma annotations for improved clangd and clang-tidy diagnostics 2025-10-25 22:19:11 +00:00
jan.nijtmans 2d101b4bfd [c7dc599e73]: Add IWYU export pragma annotations for improved clangd and clang-tidy diagnostics 2025-10-25 12:45:12 +00:00
jan.nijtmans 2bda8aeaf2 Fix MSVC compilation 2025-10-25 12:22:28 +00:00
dkf 23253d52f8 merge trunk 2025-10-24 16:24:53 +00:00
jan.nijtmans 2b7717982b More bool handling (mainly in tclNamesp.c and tclParse.c) 2025-10-24 15:34:28 +00:00
jan.nijtmans abbb852d2c Make the bool type available properly (and reduce include duplication). Be careful though; C23 deprecates that header 2025-10-24 11:53:01 +00:00
jan.nijtmans e0d724c9c3 Make the bool type available properly (and reduce include duplication). Be careful though; C23 deprecates that header. 2025-10-24 11:51:31 +00:00
dkf 181a4d55a9 Known numbers shouldn't really be quoted in trace messages 2025-10-23 13:47:13 +00:00
dkf 811378c6aa merge trunk 2025-10-23 13:38:50 +00:00
dkf 8f936d115e Bake following variable links into most TEBC LVT accesses; only the link formation opcodes don't do it that way 2025-10-23 13:29:59 +00:00
dkf c71932b861 Use C11 varargs macros to help clean up TEBC instruction tracing 2025-10-23 08:36:31 +00:00
dkf c9489171de Use shorter type name... to match whole rest of file 2025-10-22 11:54:45 +00:00
dkf 3edb8e7287 And another spot for improvements 2025-10-18 16:07:14 +00:00
dkf f9674d607f Modernising the safe base for 9.1 2025-10-17 15:23:28 +00:00
jan.nijtmans bba05de4a7 complete the job in the previous commit 2025-10-17 14:09:12 +00:00
jan.nijtmans a5eac2af34 complete the job in the previous commit 2025-10-17 14:08:45 +00:00
dkf 60a713d196 Opt => 0.4.10, not 0.5.0 2025-10-17 13:44:56 +00:00
dkf ae5f7069ef Back off version number changes to opt to 0.4.10; API is unchanged and tests were broken 2025-10-17 13:40:17 +00:00
jan.nijtmans 0e8f960484 Opt => 0.5 2025-10-17 08:09:09 +00:00
jan.nijtmans ede65c994e Fix some obvious inefficiencies in the opt package. Opt => 0.5.0 2025-10-17 08:02:29 +00:00
jan.nijtmans 0dab183c5a Align 'else' statements 2025-10-17 07:26:55 +00:00
dkf fae8c4cf1b Fix some obvious inefficiencies in the opt package 2025-10-16 16:10:03 +00:00
jan.nijtmans 39bfe688ce Merge 9.0 2025-10-16 15:02:20 +00:00
jan.nijtmans 2761999ac0 Missed sentinels 2025-10-16 14:54:23 +00:00
jan.nijtmans 93bcf63784 .. neither are (internal) TclOOMakeProcInstanceMethod2/TclOOMakeProcMethod2 2025-10-16 13:47:49 +00:00
jan.nijtmans 52f35bf803 Tcl_MethodType2 is not available when doing Tcl8 compiles 2025-10-16 13:21:16 +00:00
dkf bf8aaf69e7 merge 9.0 2025-10-16 10:59:31 +00:00
dkf 2ee1a29106 Factor out some common parsing code (compression levels, decompression buffer sizes) 2025-10-16 10:58:12 +00:00
dkf e405e32422 merge 9.0 2025-10-15 17:01:05 +00:00
dkf 8dc16da0ab Convert [zlib] to be a real ensemble 2025-10-15 16:04:27 +00:00
dkf 9bfa427e20 fix silly typo in comment: stgack -> stack 2025-10-15 13:56:59 +00:00
jan.nijtmans 045557c267 Now full fix for Linux too .... (see prev commit) 2025-10-15 10:23:48 +00:00
dkf 1d4da5ab41 Fix the add-matcher bits (sorry, Jan!) 2025-10-14 11:19:42 +00:00
dkf a08b8003b4 Extend to internal API 2025-10-14 07:53:53 +00:00
jan.nijtmans 6bd64bfe5c No need to use #define here 2025-10-13 16:31:11 +00:00
dkf 842dfb0409 Use _Generic to mask difference between Tcl_MethodType and Tcl_MethodType2 some more 2025-10-13 15:59:07 +00:00
jan.nijtmans c9e766911c Don't make Tcl 9.0 OO stuff available when compiling for Tcl 8 2025-10-13 15:22:03 +00:00
dkf fbdc0a69c1 Add basic problem matcher for tcltest 2025-10-13 13:04:11 +00:00
jan.nijtmans 224961e3b6 Revert [ec6b431c3e38d420]. In stead take over [https://github.com/JuliaStrings/utf8proc/pull/305|PR #305] upstream 2025-10-12 20:01:54 +00:00
jan.nijtmans b2b0138367 Fix TCL_MEM_DEBUG build, broken by previous commit 2025-10-12 19:37:33 +00:00
jan.nijtmans 7b483fc029 Rebase to trunk 2025-10-12 19:21:49 +00:00
dkf eb1b9815d7 Move ObjRef macros to tclInt.h; better location for them.
This should have been part of [2d7ae66265] in retrospect.

JN: Really? All builds for Tcl 9.1 and Tk 9.1 are broken now!
2025-10-11 11:08:25 +00:00
jan.nijtmans e26829c946 Fix broken build, introduced [2d7ae66265|here]. More -Wconversion warning fixes 2025-10-10 23:15:49 +00:00
jan.nijtmans c68694679e Backport formatting from 9.1. No change in functionality 2025-10-10 21:26:13 +00:00
dkf 3bea22bfe8 Remove useless semicolons 2025-10-10 16:46:39 +00:00
dkf 4e11275992 Move ClockSafeCatchCmd to place where it can see real InterpState definition 2025-10-10 16:39:11 +00:00
dkf a1676fe1f6 Apply normal indentation/formattiong rule for sub-blocks 2025-10-10 16:24:34 +00:00
jan.nijtmans 3b4ae95368 Sync Tcl_OpenTcpClient signature (parameter-name only) with documentation 2025-10-10 14:41:21 +00:00
jan.nijtmans 92f417bfa9 Sync Tcl_OpenTcpClient signature (parameter-name only) with documentation 2025-10-10 14:39:39 +00:00
jan.nijtmans 64c3639253 Rebase to trunk 2025-10-10 07:07:31 +00:00
jan.nijtmans 1987873e55 Update create-dmg/create-dmg to version 1.2.2 2025-10-10 07:00:56 +00:00
jan.nijtmans 8b3c1f4783 Update create-dmg/create-dmg to version 1.2.2 2025-10-10 07:00:04 +00:00
jan.nijtmans 5d5d097b0a Add some libraries to the windows build (will be needed by tka11y) 2025-10-09 12:43:01 +00:00
jan.nijtmans 8cfc10ebc9 Use Tcl_CreateObjCommand2 2025-10-06 15:31:49 +00:00
jan.nijtmans 0cb7090ca5 Rebase to trunk 2025-10-06 15:17:29 +00:00
jan.nijtmans 3764e1a41f Indenting consistancy 2025-10-06 15:12:24 +00:00
jan.nijtmans e46adc9abe Relax mutex-condition-3 (which sometimes fails on macOS) 2025-10-06 15:01:50 +00:00
jan.nijtmans 5f43b3569d Indenting consistancy 2025-10-06 14:58:28 +00:00
jan.nijtmans 829edefdb6 Relax mutex-condition-3 (which sometimes fails on macOS) 2025-10-06 14:42:14 +00:00
dkf 3fd8e421d9 merge 9.0 (simplify TclGrowParseTokenArray) 2025-10-06 11:06:54 +00:00
dkf e8566bc4e8 Convert pair of macros into single inline function; serves the purpose just as well 2025-10-06 11:03:03 +00:00
apnadkarni ec13073c29 Don't delete InitAutoPath command after use. safe::interp tests load init.tcl multiple times 2025-10-04 15:56:21 +00:00
apnadkarni 0a9608403a Merge main 2025-10-04 15:12:39 +00:00
apnadkarni f003884af5 Merge 9.0 - Fix [6fbabfe166] - allows py tkinter to use zipfs build without calling TclZipfs_AppHook 2025-10-04 10:50:43 +00:00
apnadkarni 748bda28ea Fix [6fbabfe166] - allows py tkinter to use zipfs build without calling TclZipfs_AppHook 2025-10-04 10:32:16 +00:00
apnadkarni c42ccea74e Deduplicate code for mounting attached archives 2025-10-03 15:56:09 +00:00
jan.nijtmans e840a769c0 Merge 9.0 2025-10-03 11:47:35 +00:00
jan.nijtmans cc90974435 Last step in [893f8cc5db] optimization 2025-10-03 11:28:37 +00:00
jan.nijtmans 400fc0ef9e Fix static build 2025-10-03 10:50:13 +00:00
apnadkarni a22f0a69ed Tweak definition of TclListObjAppendIfAbsent 2025-10-02 15:40:43 +00:00
jan.nijtmans a312d4ddc5 Merge 9.0 2025-10-02 13:57:40 +00:00
jan.nijtmans 782aba2129 (cherry-pick): Make it easier to match up the collections of things to do with file attributes 2025-10-02 13:34:20 +00:00
jan.nijtmans e57cf01ea0 Update 'macher' utility to version 1.8 2025-10-02 13:13:28 +00:00
apnadkarni cf9a37a7f4 Duh. Need to mount archives before searching 2025-10-02 10:41:30 +00:00
dkf b39e403b35 Make it easier to match up the collections of things to do with file attributes 2025-10-01 19:37:01 +00:00
jan.nijtmans e94bca614f Merge 9.0. Update configure 2025-10-01 19:29:43 +00:00
apnadkarni 4885b18606 Check for zipfs at interp creation time if not already checked 2025-10-01 15:02:11 +00:00
jan.nijtmans 26dc9aa2fd Eliminate last atomic. Use thread_equal() and PTHREAD_NULL 2025-10-01 14:33:39 +00:00
jan.nijtmans e224fa38b4 Merge 9.0 2025-10-01 10:42:33 +00:00
jan.nijtmans fc0f6f63f5 macos-13 runner is deprecated 2025-10-01 10:32:59 +00:00
jan.nijtmans de87761de9 macos-13 runner is deprecated 2025-10-01 09:34:18 +00:00
jan.nijtmans 21bef27b84 Merge 9.0 2025-10-01 09:12:06 +00:00
jan.nijtmans 4ec01f9642 (backport)Tidy up style of test support file 2025-10-01 09:11:12 +00:00
dkf d75418d570 Tidy up style of test support file 2025-10-01 08:32:36 +00:00
jan.nijtmans e17f863bb2 Merge 9.0 2025-10-01 08:25:19 +00:00
jan.nijtmans 1602f8bc84 Oops 2025-10-01 08:10:32 +00:00
jan.nijtmans c8f732ea1b Merge 9.0 2025-09-30 20:13:29 +00:00
jan.nijtmans a2d1fe6ed3 dde => 1.4.6 2025-09-30 19:26:14 +00:00
jan.nijtmans 185d42bb27 dde => 1.4.6 2025-09-30 19:14:08 +00:00
jan.nijtmans 7f0ae12725 Backport dde changes from 9.0 2025-09-30 17:15:40 +00:00
jan.nijtmans f64d0f5032 Optimize MutexInit/MutexDestroy: init the thread and counter before the mutex itself 2025-09-30 08:30:29 +00:00
jan.nijtmans 9ef7bf41c7 Merge 9.0 2025-09-30 06:32:22 +00:00
apnadkarni 3eb87289db Merge 9.0 - Test cases for mutexes + dkf's manpage edits 2025-09-30 03:32:53 +00:00
apnadkarni e2e5f90e6b Test cases for mutexes and condition variables 2025-09-30 03:27:39 +00:00
jan.nijtmans d34e818733 use assert 2025-09-29 20:49:53 +00:00
dkf 72b93786db Tweak wording of NAME section: principally consistent capitalisation 2025-09-29 19:07:51 +00:00
jan.nijtmans 749ad3ca05 Merge 9.0 2025-09-29 08:50:41 +00:00
jan.nijtmans f2841991c9 [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb] follow-up: -Wc++-keyword only exists in clang > 20 2025-09-29 08:47:54 +00:00
apnadkarni eec6ca45f4 Merge trunk 2025-09-29 05:37:44 +00:00
apnadkarni ad579ecf2f Fix skipping of mutex tests under MinGW 2025-09-28 12:47:27 +00:00
apnadkarni f0038b636b Explicitly finalize test condition variables 2025-09-28 11:26:08 +00:00
apnadkarni 5090f824a4 Add mutex lock and cv tests. Refactor mutex test C into separate file 2025-09-28 11:21:03 +00:00
jan.nijtmans 8f0c03b962 Two possible improvements: 1) Only panic in DEBUG mode, 2) Don't add memory barries when there already is one 2025-09-27 20:16:18 +00:00
sebres 7f39be055a merge 9.0, code deduplication; increase timouts detecting exit hangs for mem-debug, etc 2025-09-27 18:14:24 +00:00
sebres ff0a4d2679 merge 8.6, code deduplication; increase timouts detecting exit hangs for mem-debug, etc. 2025-09-27 18:08:43 +00:00
sebres 9bf9c125f1 code deduplication; increase timouts detecting exit hangs for mem-debug (maybe too short in GHA); 2nd process undeeded; improving cleanup 2025-09-27 18:01:41 +00:00
jan.nijtmans 27d5eee770 Stop using recursive mutex in tclEncoding.c 2025-09-27 17:43:00 +00:00
jan.nijtmans ecf432a527 Stop using recursive mutex in tclEncoding.c 2025-09-27 17:32:12 +00:00
apnadkarni 55cffbe04b Add condition variable test function for producer consumer pattern 2025-09-27 14:38:00 +00:00
jan.nijtmans 9f93cdc630 Rebase to trunk 2025-09-26 20:58:44 +00:00
jan.nijtmans 59f17881a1 Allow larger lists to be used. Doc fix 2025-09-26 16:57:41 +00:00
apnadkarni 2951743e45 Start on some mutex C API tests 2025-09-26 16:20:06 +00:00
jan.nijtmans 646c6531f7 Merge 9.0 2025-09-26 15:42:45 +00:00
jan.nijtmans ad0d095fa1 Further fix [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb]: Windows: new compiler, new warnings... 2025-09-26 15:41:50 +00:00
jan.nijtmans b7c56072ad Further fix [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb]: Windows: new compiler, new warnings... 2025-09-26 15:37:14 +00:00
apnadkarni 8675e8a43d Delete obsolete comment that TCL_THREAD_JOIN is ignored on Windows. 2025-09-26 13:23:31 +00:00
dkf a4b2eac048 merge trunk 2025-09-25 19:07:30 +00:00
jan.nijtmans eced1f560b Last step: change tclEncoding.c not to need recursive mutex any more. Cherry-picked from @sebres 2025-09-25 18:49:13 +00:00
sebres 7a6855255d merge 9.0 2025-09-25 14:03:28 +00:00
sebres 8535e12f2b small amend - move mutex assignment after check alloc was successful 2025-09-25 14:03:10 +00:00
sebres 2909037c6e merge 9.0 (amend to [893f8cc5db3ba8bd] with allocMutex) 2025-09-25 14:00:30 +00:00
sebres 82a9fd17bd windows: amend to [893f8cc5db] - fixed alloc mutex, avoids heap corruption and SF (tcl-mutex is not simple critical section anymore) 2025-09-25 13:42:14 +00:00
jan.nijtmans 4df5b0b1ef Merge-mark 2025-09-25 08:48:35 +00:00
jan.nijtmans 388e2a855d Since "platform" doesn't work in Tcl 8.5 any more, install it into the right module directory. 2025-09-25 08:47:29 +00:00
jan.nijtmans cb843b3c8c Merge 9.0 2025-09-24 22:30:01 +00:00
jan.nijtmans 84b35c6625 Fix [893f8cc5db]: Nested mutexes following TIP 509, Windows part 2025-09-24 22:17:02 +00:00
jan.nijtmans a3d42cee87 Merge 9.0 2025-09-24 22:09:57 +00:00
jan.nijtmans dedb17c38a Merge 8.6 2025-09-24 22:03:48 +00:00
jan.nijtmans ba69f3f3bf Fix [f309c0c5db]: Parameter 'patch' of tcl_findLibrary not documented 2025-09-24 21:55:35 +00:00
jan.nijtmans e78ce28887 Backport doc improvements 2025-09-24 21:49:56 +00:00
jan.nijtmans 003ed841fd Fix doc parse error, introduced [8050316444|here] 2025-09-24 21:33:30 +00:00
jan.nijtmans e5575744fb Fix some -Wconversion warnings. Clock simplifications 2025-09-24 20:55:30 +00:00
jan.nijtmans bef8dcb8ff Fix allocLock usage 2025-09-24 09:49:26 +00:00
jan.nijtmans 5a05111891 Merge 9.0 2025-09-24 08:57:07 +00:00
jan.nijtmans fc5ec843c9 Add a panic to MutexDestroy if the mutex is still owned 2025-09-24 08:52:58 +00:00
apnadkarni 7166bac2bb Merge trunk 2025-09-24 08:14:46 +00:00
apnadkarni 8b9f9d99fc Fix buffer size check for GetEnvironmentVariable. Tx @cjmcdonald 2025-09-24 03:08:05 +00:00
apnadkarni d7910294d3 Fix buffer size check for GetEnvironmentVariable. Tx @cjmcdonald 2025-09-24 02:56:30 +00:00
apnadkarni 547888c3e4 Fix buffer size check for GetEnvironmentVariable. Tx @cjmcdonald 2025-09-24 02:38:12 +00:00
jan.nijtmans 878e2ec5c0 Merge 9.0 2025-09-23 17:55:36 +00:00
jan.nijtmans e6ce0c2879 [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb] Fix clang -Wjump-misses-init warnings: "jump from this goto statement to its label is incompatible with C++" 2025-09-23 17:47:22 +00:00
jan.nijtmans 7e1f59fefa Rebase to trunk 2025-09-23 16:11:36 +00:00
jan.nijtmans 606d3a7b6d Merge 8.6 2025-09-23 15:15:39 +00:00
dkf 00b61fcc1b Remove duplicate description of oo::Slot->Resolve 2025-09-23 15:14:22 +00:00
jan.nijtmans e8c0596e2b [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb] disable too-strict clang warning on Windows 2025-09-23 15:10:04 +00:00
jan.nijtmans 89771508d2 [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb] disable too-strict clang warning on Windows 2025-09-23 15:08:26 +00:00
dkf c54d039019 Use 9.0's [const] for constants, and move IDNA tests out of http.test into their own file 2025-09-23 14:48:35 +00:00
sebres 718048da05 use InterlockedOr(&v, 0) as atomic load (ensure the access to a variable is automically synchronized by intrinsic or asm instruction and neither reordered nor happens without memory barrier) 2025-09-23 14:45:46 +00:00
jan.nijtmans 4173621fc6 (backport) Use [try] in "platform" because we don't support 8.5 and before at all 2025-09-23 14:42:07 +00:00
jan.nijtmans f54956a9af [832c2047bb] disable too-strict clang warning on Windows 2025-09-23 14:33:27 +00:00
jan.nijtmans 3a4aabd625 indenting 2025-09-23 14:00:44 +00:00
jan.nijtmans 788ddb2738 Merge 9.0. Make the Windows implementation working too 2025-09-23 13:56:19 +00:00
apnadkarni 7abcd31dbe Merge 9.0 - Fix [c9e68eb6ca] getenv checks 2025-09-23 12:19:16 +00:00
apnadkarni eb42ce79e7 Merge 8.6 - Fix [c9e68eb6ca] getenv checks 2025-09-23 12:00:19 +00:00
apnadkarni fbe3d1ff98 Fix for fix. If getenv returns NULL, Tcl_DString buffer still needs initialization 2025-09-23 11:42:28 +00:00
dkf 95d10598bf Revert usage of [switch -integer] because code has to work with pre-9.1, but use [try] because we don't support 8.5 and before at all 2025-09-23 10:46:55 +00:00
apnadkarni 6557bde13d Bug [c9e68eb6ca] - check result of getenv/GetEnvironmentVariable 2025-09-23 10:25:04 +00:00
dkf 72b4c75aec Make a few places use [switch -integer] 2025-09-23 09:03:05 +00:00
dkf 9c3602b2b2 Implement TIP 730: switch -integer 2025-09-22 18:51:15 +00:00
dkf 8bd71839dc Implement TIP 728: interp set 2025-09-22 18:49:25 +00:00
jan.nijtmans 812a09a416 Fix [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb]: Windows: new compiler, new warnings..., Tcl part 2025-09-22 17:53:13 +00:00
jan.nijtmans 532fee97b6 Fix [https://core.tcl-lang.org/tk/tktview/832c2047bb|832c2047bb]: Windows: new compiler, new warnings..., Tcl part 2025-09-22 16:41:50 +00:00
jan.nijtmans b56d566233 Merge 9.0 2025-09-22 13:40:20 +00:00
jan.nijtmans 129d68d4fb Fix UNIX part of [893f8cc5db]: Nested mutexes following TIP 509 2025-09-22 13:39:48 +00:00
jan.nijtmans fbee4e9972 Use of __atomic_compare_exchange_n() is not really necessary here 2025-09-22 13:29:35 +00:00
apnadkarni 3fe8a72faa Bug [c9e68eb6ca] - Windows version 2025-09-22 10:34:22 +00:00
apnadkarni b9dccd7302 Bug [c9e68eb6ca] - check getenv result for TCL_LIBRARY 2025-09-22 10:09:29 +00:00
jan.nijtmans 46328adfcf More progress in Windows implementation (doesn't work yet) 2025-09-21 14:21:03 +00:00
dkf 3c345de0f6 Fix broken registry tests and clean up style 2025-09-21 07:18:23 +00:00
jan.nijtmans fcb1a00ae8 Re-implement tclUnixThrd.c, improve the locking. (Not done for Windows yet) 2025-09-20 18:47:46 +00:00
jan.nijtmans 6099bf2953 Fix [77059c] TclPushVarName(): pointer overflow 2025-09-19 17:07:26 +00:00
jan.nijtmans c0e65674ab Fix [77059c] TclPushVarName(): pointer overflow 2025-09-19 16:53:24 +00:00
jan.nijtmans e8d984be5e Fix [77059c] TclPushVarName(): pointer overflow 2025-09-19 16:38:16 +00:00
jan.nijtmans d9c8e18217 Update to Werner's latest spinlock code. More progress on the Windows implementation 2025-09-19 11:11:33 +00:00
apnadkarni 1cbddde96a Merge 9.0 - Fix leak in zipfs encoding initialization 2025-09-19 08:31:25 +00:00
apnadkarni 1df952251c Fix leak in zipfs encoding initialization 2025-09-19 08:30:18 +00:00
jan.nijtmans 6d7c1e857a restore tclInt.h 2025-09-18 20:24:47 +00:00
jan.nijtmans ad3dc5b4cf Merge 9.0 2025-09-18 13:32:46 +00:00
jan.nijtmans 3b8196f7fb Merge 9.0 2025-09-18 13:29:35 +00:00
jan.nijtmans 09b5097207 Always include stdbool.h, not only on Windows. We assume C99 already. 2025-09-18 13:28:33 +00:00
jan.nijtmans a2ea7a527b Add Christian's spinlock patch. So we can do performance testing to see which is better, or simply keep both 2025-09-18 12:18:50 +00:00
jan.nijtmans b40e7914ca Fix [77059c4f45]: TclPushVarName(): pointer overflow 2025-09-18 09:35:47 +00:00
jan.nijtmans 00f5517875 Use C11 atomic functions. (WIP this is still UNIX-only) 2025-09-18 09:15:02 +00:00
jan.nijtmans 9b46f29407 Merge 8.6 2025-09-18 08:14:50 +00:00
jan.nijtmans 63525e5b36 (backport) The option -Wunused-but-set-variable appears to be usable starting clang 15
Also (while on it) upgrade bison and fix a possible Year 2038 problem in it.
2025-09-18 07:43:19 +00:00
apnadkarni 47ad992c31 Fix extra incr ref resulting in leaks. Some TclFS functions return objects with ref count already incremented 2025-09-18 05:10:03 +00:00
apnadkarni 8b80e1d943 Move part of init.tcl to C. Knock off another 25% of interp start time 2025-09-17 16:50:11 +00:00
dkf 133dd1d461 Apply 'Tcl' namespace to names (in [clock] impl) with wider scope than one C file 2025-09-17 12:46:33 +00:00
jan.nijtmans 0dc9c549b6 Rebase branch to 9.0 2025-09-17 11:06:17 +00:00
dkf f89f7e207c Clean up some indentation/macros 2025-09-17 10:16:45 +00:00
apnadkarni 36f030ea0b Merge trunk 2025-09-17 05:24:07 +00:00
apnadkarni 3dd87a3eae Complete moving tclInit to C. All test pass 2025-09-17 05:23:12 +00:00
jan.nijtmans 52ae3d259b Merge 9.0 2025-09-16 20:16:50 +00:00
jan.nijtmans 6a5c15bd0d Eliminate __stdcall usage: cygwin32 is no longer supported 2025-09-16 19:44:25 +00:00
jan.nijtmans dc23150ba4 Eliminate __stdcall usage: cygwin32 is no longer supported 2025-09-16 19:17:09 +00:00
apnadkarni 7cf2992523 Start moving init.tcl search to C 2025-09-16 17:06:15 +00:00
apnadkarni f40b1e29e2 Reapply utf8proc patch to Unicode 17 update needed to fix -Wc++-compat warnings.
C++ treatment of enums differs from C!
2025-09-16 16:43:36 +00:00
jan.nijtmans 4b7e631d4b Merge 9.0 2025-09-16 15:18:31 +00:00
jan.nijtmans f0ee416656 The option -Wunused-but-set-variable appears to be usable starting clang 15 2025-09-16 15:12:57 +00:00
dkf b4be9aa404 Indent fix 2025-09-16 14:08:49 +00:00
jan.nijtmans 6b3368006b Fix some harmless complier warnings (discovered with clang 20) 2025-09-16 13:56:22 +00:00
apnadkarni e6cf4a91c8 Merge trunk 2025-09-16 11:51:09 +00:00
apnadkarni d340e28424 Bug [f0b80a3db9] Remove assertion that TclZipfs_AppHook has been called as custom apps may not call it. 2025-09-16 11:36:09 +00:00
apnadkarni 2937c3cf89 Bug [f0b80a3db9] Remove assertion that TclZipfs_AppHook has been called as custom apps may not call it. 2025-09-16 11:34:25 +00:00
dkf 6df240cc49 Tidy up the interface to the normalisation code 2025-09-16 09:04:58 +00:00
dkf 353d78650b merge trunk 2025-09-16 08:04:15 +00:00
jan.nijtmans 8b0b028ee8 Unicode version 17 2025-09-15 21:38:14 +00:00
jan.nijtmans bbd3361798 Unicode version 17 2025-09-15 20:59:38 +00:00
jan.nijtmans bfdfb1717a Unicode version 17 2025-09-15 20:51:02 +00:00
jan.nijtmans 586db4a850 (more) Use correct equality 2025-09-15 20:16:55 +00:00
jan.nijtmans 599a6341a8 Merge 8.6 2025-09-15 20:08:00 +00:00
jan.nijtmans fa956a358e (backport) Use correct equality 2025-09-15 19:43:46 +00:00
dkf 3efc40d9bc Add test for subcommand list of interp child, never previously tested 2025-09-15 16:58:27 +00:00
dkf b3e3393fbf merge trunk 2025-09-15 16:06:18 +00:00
dkf 5784996e93 Simplify code a bit more, including by actually using local variables... 2025-09-15 16:01:36 +00:00
dkf 0df5998f8d we can trap some errors; that's what the mechanism's there for 2025-09-15 13:11:47 +00:00
apnadkarni aa2e9b0734 Ignore error in setting tcl_rcFileName for historical compatibility 2025-09-15 11:24:57 +00:00
dkf bd592e421a Use correct equality 2025-09-15 10:59:35 +00:00
apnadkarni 965b6158f3 Bug [f0b80a3db9] Remove assertion that TclZipfs_AppHook has been called as custom apps may not call it. 2025-09-15 07:42:43 +00:00
apnadkarni b25033c093 Start on refactoring Tcl initialization. 2025-09-15 06:04:26 +00:00
dkf 8d3981bfab end divergence 2025-09-12 14:14:53 +00:00
dkf bcdc7359ff minor fix: function header formatting 2025-09-12 13:24:34 +00:00
jan.nijtmans 80c3628dc1 Merge 9.0. Eliminate (internal) NS_KILLED 2025-09-12 08:14:41 +00:00
jan.nijtmans 0ed938e8a6 deprecate (internal) NS_KILLED. It is not used any more 2025-09-12 08:04:36 +00:00
jan.nijtmans 375a6645f0 Merge 9.0 2025-09-11 19:57:42 +00:00
jan.nijtmans 006f707ca6 Re-generate tclDate.c (which is not hand-edited any more) 2025-09-11 19:53:55 +00:00
jan.nijtmans 3b102efce9 Unneeded header file inclusion. Duplicated -DUTF8PROC_STATIC on command line 2025-09-11 19:35:57 +00:00
jan.nijtmans 1eeb44e7b1 Clang doesn't know -Wunused-but-set-variable 2025-09-11 15:14:30 +00:00
jan.nijtmans 9f6d0259e1 Some error-message consistancy 2025-09-11 09:16:14 +00:00
jan.nijtmans dd3ee8c911 Change a panic into a runtime error: "can't convert value to type arithseries" 2025-09-11 08:33:20 +00:00
jan.nijtmans ffa92aa970 Merge-mark 2025-09-10 15:11:20 +00:00
jan.nijtmans 9dfec5c9b3 Fix g++ warnings, when compiling for Tcl 8.6 2025-09-10 15:10:03 +00:00
dkf 849b80d565 Turn some things into enums that really should have been that all along 2025-09-10 14:14:47 +00:00
dkf 0e1eefe7f1 Turn some things into enums that really should have been that all along 2025-09-10 09:12:05 +00:00
dkf 98fb6d220f Tests for [switch -integer] 2025-09-09 19:42:53 +00:00
dkf 325f18aac6 Add documentation 2025-09-09 14:41:21 +00:00
dkf cd5784be3b Note that some bits probably are unreachable (and buggy too). 2025-09-09 14:10:16 +00:00
dkf 7f8f9c1a53 Fix a silly error by sharing the enum between functions. 2025-09-09 14:01:42 +00:00
dkf f0641c4ca7 Fix detection of "default" 2025-09-09 13:11:28 +00:00
dkf 7bb5b8e5a5 Bytecode compilation for [switch -integer] 2025-09-09 11:05:12 +00:00
dkf ffecb9c115 Start of implementation of [switch -integer] 2025-09-09 08:30:30 +00:00
jan.nijtmans 5688dcfb5d Merge 9.0 2025-09-08 14:55:33 +00:00
jan.nijtmans f7e801ae52 Merge 8.6 2025-09-08 14:50:41 +00:00
dgp 557a8b054c Any edit to a released package needs to bump the version number. 2025-09-08 14:33:21 +00:00
dkf 83c3afbe97 Use the new subcommand 2025-09-08 13:54:34 +00:00
dkf 278dd5f80a Add tests 2025-09-08 13:47:24 +00:00
jan.nijtmans 38ee465619 New test command "testobj huge". Not used in any testcase yet 2025-09-08 13:35:11 +00:00
dkf e094971bf4 Implement TIP 728: [interp set] 2025-09-08 11:49:35 +00:00
jan.nijtmans 9278f21df4 Merge 9.0 2025-09-08 09:05:47 +00:00
jan.nijtmans 8ebbe7e580 Refactoring for [0439e1e1a3] 2025-09-08 09:02:46 +00:00
dkf 45dfb44248 Remove empty else clauses from http.tcl, as they add nothing of value 2025-09-08 08:23:47 +00:00
jan.nijtmans db3a53ffcc More refactoring 2025-09-07 16:31:56 +00:00
jan.nijtmans 51fd3c036b More follow-up to [0439e1e1a3]: Slow detection of illegal expr argument, some refactoring 2025-09-07 10:11:36 +00:00
dkf bab080f157 Merge 9.0 2025-09-05 15:27:31 +00:00
dkf 2b244c07e6 rework install.tcl to use Tcl features more, and have standard code formatting 2025-09-05 15:21:02 +00:00
jan.nijtmans a1c83e5026 Merge 9.0 2025-09-05 14:43:16 +00:00
jan.nijtmans e1a9f8569f Fix [2a14c349a8]: inconsistant error-message inTcl_GetNumberFromObj(). With testcase 2025-09-05 14:37:07 +00:00
dgp 6f3a223c79 [5927f87da3] Remove outdated limit on argument size. 2025-09-05 12:55:16 +00:00
dgp efdb86b8ca [5927f87da3] Remove outdated limit on argument size. 2025-09-04 17:57:13 +00:00
jan.nijtmans 99d381bb0f Merge 9.0 2025-09-04 17:03:01 +00:00
jan.nijtmans 1c15b0edd4 %#d conversion is always performed. Fix comment 2025-09-04 16:53:00 +00:00
jan.nijtmans eafeb56c9a Merge 9.0 2025-09-04 15:32:35 +00:00
jan.nijtmans d06ded5949 Improve format #d documentation 2025-09-04 15:31:38 +00:00
jan.nijtmans bd2bc30009 Rebase to trunk 2025-09-04 09:52:06 +00:00
jan.nijtmans c8eabd800e Microsoft compilers don't have mode_t 2025-09-04 09:42:42 +00:00
jan.nijtmans 922ff30b27 Fix some -Wconversion warnings 2025-09-04 09:33:13 +00:00
jan.nijtmans 7964040942 more Minor indent fixes 2025-09-04 08:59:08 +00:00
dkf 0e996e8a16 Minor indent fixes 2025-09-04 08:24:38 +00:00
dkf cb40e448e6 Fix a minor typo in a comment 2025-09-04 08:09:58 +00:00
jan.nijtmans 549e18ff29 [af4780b0b5]: Improve format #d documentation 2025-09-03 21:37:19 +00:00
jan.nijtmans 32c4f04394 Rebase to trunk 2025-09-02 20:04:01 +00:00
dkf 3798f3840d Remove some irksome indents in doc comments 2025-09-02 15:51:18 +00:00
jan.nijtmans 055f36028a (partial) merge trunk 2025-09-02 14:54:42 +00:00
jan.nijtmans 5b13ba7d56 In no-deprecate mode, don't run tests involving sqlite3. TCL_HASH_TYPE is an internal type, which shouldn't be used by extensions. 2025-09-02 13:13:31 +00:00
jan.nijtmans e94fb30f90 (partial) merge trunk 2025-09-02 09:21:52 +00:00
jan.nijtmans 8eb38e1e0d Don't use sqlite3 in TCL_NO_DEPRECATED mode for testing 2025-09-02 08:51:33 +00:00
jan.nijtmans a3c3f803d2 Fix TCL_NO_DEPRECATED build 2025-09-02 08:44:13 +00:00
jan.nijtmans 63b720a2bb Merge 9.0 2025-09-02 07:18:29 +00:00
jan.nijtmans 8a0805d957 Update to burnett01/rsync-deployments@7.1.0 2025-09-02 07:17:37 +00:00
jan.nijtmans 961233d1bf (partial) merge trunk 2025-09-01 13:53:50 +00:00
jan.nijtmans 80dbadd360 Update UNICODE_OUT_OF_RANGE to handle all planes. Remove unneeded UNICODE_OUT_OF_RANGE() usage 2025-09-01 11:03:24 +00:00
dkf c9410abc17 Merge 9.0 2025-09-01 08:31:25 +00:00
dkf c4ac08a800 Add code comments, move a function to a better file to own it. 2025-09-01 08:19:50 +00:00
jan.nijtmans fad323864a Merge 9.0 2025-09-01 07:26:29 +00:00
jan.nijtmans 76bdc018ff Fix [85fc8bca03]: Pointer arithmetic with NULL in buildInfoObjCmd(). Update changes.md 2025-09-01 07:24:27 +00:00
apnadkarni 4e97ca889f Merge 9.0 - Mount zipfs early - see [87b69745be] 2025-09-01 04:58:34 +00:00
apnadkarni 254f7eebf9 Mount zipfs early - see [87b69745be] 2025-09-01 03:52:45 +00:00
jan.nijtmans 1082d5fb64 Final verdict, without test expectation changes 2025-08-31 20:13:49 +00:00
jan.nijtmans 96274f589b Oops, 21 bits, not 17 bits 2025-08-31 20:03:32 +00:00
jan.nijtmans 0a7a60c000 Final verdict, without test expectation changes 2025-08-31 19:14:42 +00:00
jan.nijtmans d0da49ca00 Merge 9.1 2025-08-31 17:47:54 +00:00
jan.nijtmans 12c0a498e4 Merge 9.0. Fix TIP #726 implementation, so all functions give the same answer as Tcl 9.0 for out-of-bound characters 2025-08-31 17:16:26 +00:00
jan.nijtmans e377de0835 Add testcases for out-of-range Unicode characters 2025-08-31 16:38:23 +00:00
dkf 9c2b96c033 Bump the patchlevel of TclOO 2025-08-31 06:14:11 +00:00
dkf 321aadcbe1 Bump the patchlevel of TclOO 2025-08-31 06:13:13 +00:00
dkf 479fa485d6 merge core-9-0-branch 2025-08-30 21:20:01 +00:00
dkf c9471ead15 Make things that ought to be constants be so. 2025-08-30 20:36:31 +00:00
dkf b243e3a768 Put the baseline cloning (oo::object-><cloned>) of objects in C. 2025-08-30 15:13:31 +00:00
dkf 86529b423d Backport of oo::object-><cloned> in C. 2025-08-30 15:11:38 +00:00
dkf 4d847869d0 Backport of oo::object-><cloned> in C. 2025-08-30 15:10:23 +00:00
jan.nijtmans 6249662529 Sorry Ashok, but I object to changing a right-shift (as it originally was) to a left-shift. Will explain by mail. 2025-08-30 14:36:15 +00:00
dkf b208f93991 Put the baseline cloning of objects in C. I'd been putting off doing this for over a decade, as it was always going to be a lot of work despite all the inefficiency... 2025-08-30 14:16:57 +00:00
apnadkarni adcac4d829 TIP 726 2025-08-30 08:45:59 +00:00
jan.nijtmans 9dca873f42 More review: Eliminate UNICODE_OUT_OF_RANGE and use right-shifts 2025-08-29 13:24:17 +00:00
apnadkarni 77f6a4523f Fix bogus assert in unicode normalization 2025-08-29 08:56:18 +00:00
apnadkarni 21420bf2dc Update changes.md 2025-08-29 02:59:15 +00:00
apnadkarni 837f5ea2b5 Merge main 2025-08-29 02:58:33 +00:00
dkf d868ab104d merge core-9-0-branch 2025-08-28 15:07:12 +00:00
dkf bb9eb9dccb More backported initialisation acceleration of TclOO 2025-08-28 14:56:47 +00:00
dkf 69c608945b Modify code and comments for 9.0 style 2025-08-28 14:54:14 +00:00
dkf 206191f95c Move more machinery into C from the TclOO init script 2025-08-28 14:23:48 +00:00
dkf c6f6512e4f Tinkering, making code simpler or easier to maintain 2025-08-28 14:20:33 +00:00
dkf c9bf4f90f4 Complete the moving of the definition of slots entirely into C 2025-08-28 14:19:13 +00:00
dkf 8ec3b49770 Move more machinery into C from the TclOO init script 2025-08-28 14:02:03 +00:00
dkf aac67da749 Tweak comments 2025-08-28 13:49:30 +00:00
dkf e1bd94f06d Move oo::class::<cloned> into C 2025-08-28 13:41:47 +00:00
dkf 51affe5411 Move remaining bits of property system into C; only cloning methods now left 2025-08-28 12:17:27 +00:00
dkf f10dda9b29 merge trunk 2025-08-28 10:39:41 +00:00
apnadkarni 149bd8cfe7 Merge 9.0 - Eliminate TCL_BROKEN_MAINARGS 2025-08-28 08:42:46 +00:00
apnadkarni 2e7a72db2b Eliminate TCL_BROKEN_MAINARGS 2025-08-28 08:32:19 +00:00
apnadkarni 33e707c425 Fix unsigned char* to char* conversion warning 2025-08-28 07:52:49 +00:00
apnadkarni c1918c8b71 Merge main 2025-08-28 07:18:16 +00:00
jan.nijtmans 51203a9b3c 2 review remarks: _CRT_glob is still necessary. And please use autoconf 2.72.
Tx for the fix - Ashok
2025-08-28 06:21:00 +00:00
apnadkarni 65dcab5823 Merge 9.0 2025-08-28 06:06:37 +00:00
apnadkarni 85b683aeb6 Get rid of obsolete TCL_BROKEN_MAINARGS 2025-08-28 03:26:11 +00:00
jan.nijtmans 68897b5cf8 Merge 9.0 2025-08-27 11:58:50 +00:00
jan.nijtmans 447c6b45f4 Follow-up to [66cd465323]: For Tcl 9.0+, building on 32-bit MacOS is no longer supported 2025-08-27 11:57:47 +00:00
jan.nijtmans 01122b3755 Follow-up to [66cd465323]: For Tcl 9.0+, building on 32-bit MacOS is no longer supported 2025-08-27 11:22:17 +00:00
jan.nijtmans a1cb9bec04 32-bit MacOS builds are no longer supported, starting with Tcl 9.0. 2025-08-27 09:37:29 +00:00
apnadkarni 386df859ed Mount ALL zipfs archives before ANY library searches 2025-08-27 05:57:12 +00:00
apnadkarni 3a4921c30c Create new branch named "apn-early-zipfs-mounts" 2025-08-27 05:41:45 +00:00
dkf b4749f2ef8 merge trunk 2025-08-26 13:38:30 +00:00
jan.nijtmans a7bfc6de7b Merge trunk 2025-08-26 08:24:46 +00:00
jan.nijtmans 3bc187f269 Merge 9.0 2025-08-26 08:14:32 +00:00
sebres 891eea99d3 merge 9.0 2025-08-25 23:17:15 +00:00
sebres 0cb17454f5 fixes too earlier search for tcl-library (TclZipfsLocateTclLibrary shall be invoked after zipfs mount). 2025-08-25 22:55:02 +00:00
sebres c0a8ba92b3 amend to [0433b67adc] (ticket [87b69745be]): don't return with OK (swallow the error) if encoding cannot be loaded, and current system encoding is NULL for whatever reason 2025-08-25 16:42:09 +00:00
jan.nijtmans 9f14eb7ec0 Merge 9.0 2025-08-25 15:34:57 +00:00
jan.nijtmans b9beb1d4da [66cd465323] Platform package simplifications for MacOS >= 11. Platform => 1.1.0 2025-08-25 15:32:36 +00:00
dkf 083cde67c2 Move the oo::configurable constructor into C 2025-08-25 15:23:25 +00:00
jan.nijtmans 7ed03d9071 [66cd465323] Platform package simplifications for MacOS >= 11. Platform => 1.1.0 2025-08-25 15:08:09 +00:00
jan.nijtmans d670bff60d Remove some more references to non-existing Tcl version 8.7 2025-08-25 11:49:51 +00:00
jan.nijtmans f66fe9878d Remove some more references to non-existing Tcl version 8.7 2025-08-25 11:42:28 +00:00
jan.nijtmans 48036321c0 Merge trunk 2025-08-25 11:16:05 +00:00
jan.nijtmans 16338b5c13 Merge 9.0 2025-08-25 11:13:06 +00:00
dkf db75667582 Move more of configurable's machinery into C 2025-08-25 10:59:22 +00:00
jan.nijtmans 972e07e217 Bring Windows part into this branch too 2025-08-25 09:53:09 +00:00
jan.nijtmans e2ffe6dbea Eliminate all usage of HAVE_DECL_PTHREAD_MUTEX_RECURSIVE 2025-08-25 09:51:34 +00:00
jan.nijtmans 867c478b31 Merge trunk 2025-08-25 09:38:51 +00:00
jan.nijtmans 7cf49921d2 Fix testcase oo-1.21 2025-08-25 09:37:02 +00:00
jan.nijtmans 81b7dcc604 Merge 8.6 2025-08-25 09:17:19 +00:00
jan.nijtmans fa3d5254bc Fix handling of i386-x86_64 in platform extension. Add testcases for this (and other) situation 2025-08-25 08:51:05 +00:00
dkf 595cb7b090 Fix bugs 2025-08-25 08:43:14 +00:00
dkf d1d06415a4 Move extra classes into C; mostly there, but not yet working 2025-08-25 08:30:32 +00:00
oehhar f0e82bdd0d [893f8cc5] tip509 nested mutex MS-Windows patch by Christian (thanks !) 2025-08-24 18:47:54 +00:00
dkf d722ff53fa Start of making the singleton class implemented in C 2025-08-24 11:47:45 +00:00
dkf a36df8b49f Tinkering, making code simpler or easier to maintain 2025-08-24 10:40:58 +00:00
dkf 89602ea04f Complete the moving of the definition of slots entirely into C 2025-08-24 06:52:11 +00:00
dkf c3667976c0 merge core-9-0-branch (sync after backport) 2025-08-23 08:23:41 +00:00
dkf dae58dbbf7 Backported accelerations to TclOO's startup code 2025-08-23 08:00:12 +00:00
dkf 6ccf2e49a6 corrections (createhashentry is different in 9.1) and cleanup (I like command tables) 2025-08-23 07:57:28 +00:00
jan.nijtmans 65e7fd495d Merge-mark 2025-08-22 20:27:01 +00:00
dkf 4d0c863218 Make code style be a bit closer to the one used in 9.0 2025-08-22 19:36:33 +00:00
dkf 1369c94f39 Tweak to [configurable] to not call [next] twice (backport) 2025-08-22 19:30:49 +00:00
dkf 6aa885bf86 Combine UpdateClassDelegatesAfterClone into its caller. (backport) 2025-08-22 19:29:51 +00:00
dkf a07adabbd3 Move another definition (classmethod) into C. (backport) 2025-08-22 19:28:48 +00:00
jan.nijtmans 683204c495 Fix memory debugging info 2025-08-22 19:25:13 +00:00
dkf b701602a8c Move [link] into C. (backport) 2025-08-22 19:22:05 +00:00
dkf 020c040a05 Convert MixinClassDelegates to an internal function entirely in C (backport) 2025-08-22 19:14:27 +00:00
dkf 4637d58a1e Move a bit of internal machinery (backport) 2025-08-22 17:36:48 +00:00
dkf d50c2e02e5 Move another command into C: classvariable (backport) 2025-08-22 17:35:43 +00:00
dkf d8cf3da195 Slightly faster way to write the init script (backport) 2025-08-22 17:31:50 +00:00
dkf 398d629a53 Rewrite slots in C to get a performance boost. (backport) 2025-08-22 17:31:18 +00:00
dkf f10d71aac1 Speed up TclOO init; no directing via unknown method handler for slots of classes we define ourselves (backport) 2025-08-22 17:18:32 +00:00
dkf e2eea4ca29 Slightly chisel down the execution time of the oo init script (backport) 2025-08-22 17:17:22 +00:00
dkf c9d448d73a Accelerate definition of [oo::define initialise]. (backport) 2025-08-22 17:15:48 +00:00
oehhar 41b503f686 [893f8cc5] tip509 nested mutex patch by Christian (thanks!) 2025-08-22 17:09:07 +00:00
dkf b4b7c796b0 Start making TclOO faster to initialise (backport) 2025-08-22 15:02:51 +00:00
dkf 953e89a095 Fix memory debugging info 2025-08-22 14:52:30 +00:00
dkf da62a03403 Tweak to [configurable] to not call [next] twice 2025-08-22 14:23:56 +00:00
dkf 8c55bc2ff7 Combine UpdateClassDelegatesAfterClone into its caller. 2025-08-22 13:43:50 +00:00
jan.nijtmans a26fbd2d8e Add testcases for platform macos26-x86_64 and macos26-arm 2025-08-22 13:06:31 +00:00
jan.nijtmans d8216e293b Fix handling of i386-x86_64 2025-08-22 12:50:28 +00:00
dkf f81ffaac96 Move [link] into C. 2025-08-22 11:45:24 +00:00
jan.nijtmans 0237cdfc3e Merge 9.0 2025-08-22 11:29:34 +00:00
dkf 99714dfb19 Move another definition (classmethod) into C. 2025-08-22 07:50:00 +00:00
dkf ce15c6bbcd Convert MixinClassDelegates to an internal function entirely in C 2025-08-22 07:19:52 +00:00
dkf 4ba593bcd1 Fix memory debugging info 2025-08-22 07:16:45 +00:00
dgp 6955a942a8 Make logical -> bitwise correction corresponding to recent change in Tcl 9. 2025-08-21 16:21:10 +00:00
jan.nijtmans f9d67852dc Eliminate clang compiler warning: use of logical '&&' with constant operand 2025-08-21 15:53:11 +00:00
jan.nijtmans 9b59594c5a Line no longer needed 2025-08-21 14:15:40 +00:00
jan.nijtmans d5016d4618 Add testcases 2025-08-21 14:00:13 +00:00
jan.nijtmans 3614acb08e Keep all macos < 11 handling as it was 2025-08-20 21:53:34 +00:00
dkf 8755f1bbd1 Move a bit of internal machinery 2025-08-20 12:22:28 +00:00
dkf 83dbcd5d92 Move another command into C: classvariable 2025-08-20 10:11:04 +00:00
jan.nijtmans 3989c3c5a8 Bug-fixing 2025-08-19 21:48:16 +00:00
dkf cdf5d1f306 Slightly faster way to write the init script 2025-08-19 15:45:53 +00:00
jan.nijtmans 0b6c8962f1 Experimental simplification for platform on MacOS 2025-08-19 15:05:34 +00:00
dkf a275c0575d Rewrite slots in C to get a performance boost. [effa2e2346] 2025-08-19 14:49:15 +00:00
dkf 0e597bf67c Add some documentation comments 2025-08-19 14:46:11 +00:00
dkf 926798273e Add remoaining slot ops 2025-08-19 14:15:18 +00:00
dkf 26f3fe0ec4 Saner C implementation of slot methods; add unknown handler to C side 2025-08-19 13:51:54 +00:00
jan.nijtmans 8af4e42e35 Merge 9.0 2025-08-19 12:45:39 +00:00
jan.nijtmans fdb01764dc support for MacOS Tahoe, platform => 1.0.20 2025-08-19 12:44:36 +00:00
jan.nijtmans 5db9fdb281 support for MacOS Tahoe, platform => 1.0.20 2025-08-19 12:36:22 +00:00
dkf cbfe4ca945 merge trunk 2025-08-19 10:59:14 +00:00
dkf f229fdfbab Speed up TclOO init; no directing via unknown method handler for slots of classes we define ourselves 2025-08-19 09:00:02 +00:00
dkf 2737464510 Working on rewriting the slot implementation in C; not quite correct yet 2025-08-19 08:57:06 +00:00
jan.nijtmans b36b7dd840 Minor corrections, handle Tcl 9 platform reductions 2025-08-18 21:49:35 +00:00
jan.nijtmans f63c5c2010 Oops, shouldn't use string compare here 2025-08-18 14:18:53 +00:00
jan.nijtmans bb20fd5495 Let's not break it with Tcl 8.5 2025-08-18 14:08:34 +00:00
jan.nijtmans 811ba84a6c Assume that - one day - MacOS 26.5 will be there 2025-08-18 13:56:44 +00:00
jan.nijtmans b5a1446824 Update changes 2025-08-18 13:27:23 +00:00
jan.nijtmans 9cba7a1f39 platform version => 1.0.20 2025-08-18 13:23:27 +00:00
jan.nijtmans edf3e7762f Update "platform" for MacOS-26 (Tahoe). See [https://core.tcl-lang.org/tk/tktview/a91b242d43|a91b242d43] 2025-08-18 13:20:32 +00:00
jan.nijtmans c70493e3da Fixed inconsistent indenting, introduced [0433b67adc|here]. See also [87b69745be] 2025-08-18 11:49:57 +00:00
dkf 78d41aa5dc Slightly chisel down the execution time of the oo init script, 2025-08-18 11:39:40 +00:00
dkf 5365cbc58e Accelerate definition of [oo::define initialise]. [effa2e2346] 2025-08-18 08:56:11 +00:00
jan.nijtmans f9ef66815d Merge 9.0 2025-08-18 08:32:47 +00:00
jan.nijtmans 8725698295 Better not use the old octal notation (even though it still works) 2025-08-18 08:28:13 +00:00
dkf d4264b98b1 Start making TclOO faster to initialise [effa2e2346] 2025-08-17 21:22:29 +00:00
jan.nijtmans e08b1433d9 Merge-mark 2025-08-16 22:00:45 +00:00
jan.nijtmans 7ac3df4ed7 Version => 8.6.18 2025-08-16 17:17:19 +00:00
jan.nijtmans 6165a5c4e4 Merge 9.0 2025-08-15 21:25:29 +00:00
jan.nijtmans b5e794ae51 Merge 8.6 2025-08-15 21:19:13 +00:00
dgp 66356a2027 Merge release 2025-08-15 19:15:53 +00:00
apnadkarni 9f765df173 Merge 9.0 - Fix [87b69745be] - move zipfs encoding initialization outside of interp creation. Avoid unnecessary file system epoch bump. 2025-08-14 13:44:47 +00:00
apnadkarni a2ced743ab Fix [87b69745be] - move zipfs encoding initialization outside of interp creation. Avoid unnecessary file system epoch bump. 2025-08-14 13:32:20 +00:00
jan.nijtmans 40b43b16b8 Merge 9.0 2025-08-13 21:10:28 +00:00
jan.nijtmans 0ecb6005d7 When compiling for Tcl 8.6, make Tcl 9-specific API unavailable. 2025-08-13 21:03:13 +00:00
dgp 433df5b20a merge 8.6 2025-08-13 17:18:11 +00:00
jan.nijtmans 90e9bb1547 Remove more references to version 8.7 2025-08-13 16:43:39 +00:00
apnadkarni 97da6995cd Merge core-9-0-branch 2025-08-13 13:52:45 +00:00
jan.nijtmans c91a6ef7a2 Merge 9.0 2025-08-13 10:57:00 +00:00
jan.nijtmans 47370f34ef Remove another check for TCL_MINOR_VERSION < 7 2025-08-13 10:38:41 +00:00
jan.nijtmans def5c17751 Version => 9.1a1 2025-08-13 09:42:53 +00:00
jan.nijtmans f8ea5516ec Update changes.md 2025-08-13 08:57:05 +00:00
jan.nijtmans d0604b234f Merge 9.0 2025-08-13 08:55:38 +00:00
jan.nijtmans 776d7aea9b Fix [31d4fa115b]: Tweak install permissions 2025-08-13 08:54:40 +00:00
jan.nijtmans 6422c45480 Merge 9.0 2025-08-12 22:05:07 +00:00
jan.nijtmans e71217542f Merge 8.6 2025-08-12 22:00:05 +00:00
jan.nijtmans e8eb87c308 Fix [992f94d847]: avoid misaligned pointers in macOS file attribute functions 2025-08-12 21:51:30 +00:00
jan.nijtmans b1f16dd810 Merge 8.6 2025-08-12 14:43:59 +00:00
jan.nijtmans 014e8f9cba Update dde => 1.4.5. Don't worry about Tcl 8.7 any more 2025-08-12 14:25:16 +00:00
jan.nijtmans 46032450a0 remove tclUniData.c and uniParse.tcl: not used any more 2025-08-12 13:44:57 +00:00
jan.nijtmans 8ca9939c78 Fix doc: impotent font change 2025-08-12 13:09:40 +00:00
jan.nijtmans b1df463d3e Proposed fix for [31d4fa115b]: Tweak install permissions 2025-08-12 10:23:07 +00:00
jan.nijtmans 3b54efe7eb Alternative proposed fix for [992f94d847]: avoid misaligned pointers in macOS file attribute functions 2025-08-12 10:03:34 +00:00
jan.nijtmans ccc8b3f2d9 Merge 9.0 2025-08-12 09:28:21 +00:00
jan.nijtmans 09e82f10f4 Merge 8.6 2025-08-12 08:57:28 +00:00
jan.nijtmans b1bc2060ca Update actions/checkout@v4 to actions/checkout@v5 2025-08-12 08:49:41 +00:00
jan.nijtmans 16f0d095e6 Backport some code formatting from 9.0. Fix sentinels 2025-08-12 08:46:15 +00:00
dkf 094ecf4a91 Factor out a common pattern to aid comprehensibility 2025-08-06 09:30:14 +00:00
apnadkarni f33557102f Only update file system epoch if system encoding changes 2025-08-06 02:17:47 +00:00
apnadkarni ea4344ee5b Reintroduce TclpSetInitialEncoding for --disable-zipfs case 2025-08-06 02:06:11 +00:00
dgp 073e95ccd6 Bump to tcltest 2.5.10. Code has changed since 2.5.9 release. 2025-08-04 17:34:00 +00:00
sebres 39fdd745b4 merge 9.0 (fix for [5137b4387019d0e1]) 2025-08-04 16:05:01 +00:00
dkf f712fbaf4d Correction to semantics of jumpTableNum: value argument must fit in wide int, and non-integer is an error 2025-08-04 16:03:04 +00:00
sebres dcb3cc310f (cherry-picked from 9.0) fixes [5137b4387019d0e1]: ensure cache of base is correct for :localtime (system TZ) if TZ-env changing, especially if there is no registry;
clock.test: several tests rewritten as locale, timezone, environment (TZ, TCL_TZ) and also registry independent, also improved several setups/cleanups and usage of test-own registry - there are also no test failures by `-singleproc 1` anymore in clock.test;
2025-08-04 16:02:46 +00:00
sebres a7b7c71e49 fixes [5137b4387019d0e1]: ensure cache of base is correct for :localtime (system TZ) if TZ-env changing, especially if there is no registry;
clock.test: several tests rewritten as locale, timezone, environment (TZ, TCL_TZ) and also registry independent, also improved several setups/cleanups and usage of test-own registry - there are also no test failures by `-singleproc 1` anymore in clock.test;
2025-08-04 15:56:28 +00:00
sebres 3d409e22f9 more tests to cover issue [5137b4387019d0e1] - ensure cache of base is correct for :localtime (system TZ) if TZ-env changing (if there is no registry) 2025-08-04 15:40:20 +00:00
dgp 75588630d2 unused variable warning 2025-08-04 13:32:52 +00:00
apnadkarni 27e7da4c16 Tweak test failing on macos to report macos result 2025-08-04 09:45:38 +00:00
dkf 5a363d62b2 The encoding fallback logic in ZIP handling can be done mostly by via Tcl_ExternalToUtfDStringEx now. 2025-08-04 08:58:57 +00:00
apnadkarni 48504bd484 Re-fix [fccb9f322f]. Also eliminate bumping of file system epoch on every interp creation introduced in Tcl 9 2025-08-03 17:42:28 +00:00
apnadkarni 328c8081cd Proposed fix for [87b69745be]. Move search of zipfs to process initialization, not interp initialization 2025-08-03 15:22:47 +00:00
apnadkarni bf27d3e742 Delete extraneous redundant line 2025-08-03 15:07:31 +00:00
apnadkarni c2a8023f28 Protect zipfs location with lock 2025-08-03 14:01:28 +00:00
apnadkarni 78008afd2f Delete dead code 2025-08-03 12:07:40 +00:00
apnadkarni 38c22cac2b Move search of zipfs to process initialization, not interp initialization 2025-08-03 11:38:46 +00:00
sebres fc3528fa5d (windows, noregistry only) invalidate base fields cache for TZ ":localtime", if TZ-epoch changed (without registry module and real TZ name, the local data epoch may be updated, but cache may contain offset of previos TZ, so ensure it'd be invalidated) 2025-08-01 11:59:34 +00:00
dgp 80a9133bc5 Open release branch
Updates to the changes file.
2025-07-31 20:03:33 +00:00
sebres e2e30ce163 more informative result of test clock-38.2 (in failure case it'd output all 3 results of formats as subst of expr) 2025-07-31 17:08:47 +00:00
apnadkarni e215267a60 Add test for [87b69745be]. 2025-07-31 13:57:58 +00:00
sebres 2cdcf61502 clock.test: fixes bug [5137b4387019d0e1] (test clock with -singleproc 1); rewrite clock tests locale, timezone, environment (TZ, TCL_TZ) and also registry independent, also improve several setups/cleanups and usage of test-own registry 2025-07-31 13:43:47 +00:00
sebres 8027270863 tcltest: output begin/end timestamps locale independently (as ISO 8601 datetime), also it'd help to avoid side effects like [5137b4387019d0e1] (windows may need registry package to get system locale) 2025-07-31 13:37:02 +00:00
dgp 7ea2eeaafc merge release 2025-07-30 18:36:48 +00:00
apnadkarni 7491e7bb61 Merge 9.0 - Workaround for [8c63606802] - testsetplatform / path caching with -singleproc 1 2025-07-30 16:23:17 +00:00
apnadkarni 609566df04 Workaround for [8c63606802] - testsetplatform / path caching with -singleproc 1 2025-07-30 16:20:10 +00:00
dgp e5a73b222d merge trunk 2025-07-30 15:12:31 +00:00
apnadkarni 996b875ff4 Merge 9.0. Fix some, not all, Windows test failures with -singleproc 1 2025-07-30 11:58:49 +00:00
apnadkarni 654ed859b1 Fix singleproc test failures for Windows 2025-07-30 11:38:10 +00:00
apnadkarni 0fc99032c8 Fix test errors for -singleproc 1 runs on Windows 2025-07-30 10:26:34 +00:00
apnadkarni c4aca3464b Update changes.md for TIP's 649 and 712 2025-07-30 09:01:58 +00:00
bch f80ee7c58e comment grammar; NFC 2025-07-27 17:42:04 +00:00
apnadkarni a164eb382f Add manpage for unicode command 2025-07-27 17:28:32 +00:00
apnadkarni 16ffb94c82 Add manpage for normalization API 2025-07-27 08:41:24 +00:00
apnadkarni 02c96ae4e0 Add tests Tcl_UtfToNormalized API 2025-07-27 08:07:03 +00:00
apnadkarni c7eb92a7d5 Add C API Tcl_UtfToNormalized 2025-07-27 00:59:37 +00:00
apnadkarni c1b392fe0d Merge tip-726-plus to eliminate use of tclUniData.c. 2025-07-26 06:14:54 +00:00
apnadkarni f245fa9ba9 Fix test loading for mingw which uses tclsh, not tcltest for tests 2025-07-26 05:26:50 +00:00
apnadkarni 8f075acef5 Fix gcc warnings, mingw build and extraneous prototype defs used in debug 2025-07-26 05:00:04 +00:00
apnadkarni b0bd5d1085 Remove unicode toXXXX commands as no longer needed for confirming equivalence with string toXXXX 2025-07-25 17:55:29 +00:00
apnadkarni bec2379c88 Eliminate use of tclUniData.c 2025-07-25 17:46:15 +00:00
dgp 472c19dc2f merge trunk 2025-07-25 17:43:24 +00:00
apnadkarni 93e73bdbb0 Implement unicode toXXXX congruent to string toXXXX 2025-07-25 17:34:27 +00:00
apnadkarni aaa17e0f24 Disable tests for bug 1ecea011 2025-07-25 16:05:25 +00:00
apnadkarni addffa9c6f Implement unicode is CLASS to match string is CLASS 2025-07-25 15:49:23 +00:00
apnadkarni f659687d5a Merged tip-726 2025-07-23 16:28:31 +00:00
apnadkarni c6435e6a46 Merged trunk 2025-07-23 16:27:50 +00:00
apnadkarni e2e089046e Test out of range codepoints 2025-07-23 16:07:38 +00:00
sebres 5d19c0b7ad cherry-pick from 9.0: improve interpreter creation speed, if there is no zipfs tcl-library (avoid performance penalty [62019f8aa9f5ec73]) 2025-07-22 18:49:59 +00:00
sebres 1a7d19d3cb merge 9.0: improve interpreter creation speed, if there is no zipfs tcl-library (avoid performance penalty [62019f8aa9f5ec73]) 2025-07-22 18:20:45 +00:00
sebres 9f96f1d2fb improve interpreter creation speed, if there is no zipfs tcl-library (avoid performance penalty [62019f8aa9f5ec73]) 2025-07-22 18:18:41 +00:00
apnadkarni fb849efc36 Oops, forgot upper case 2025-07-22 17:53:30 +00:00
apnadkarni 5086536ac6 Add UCD tests for string is lower,upper. Add ICU and utf8proc API's for the same 2025-07-22 17:40:51 +00:00
apnadkarni c8f0637ed4 Add support to read UCD properties file 2025-07-22 17:30:46 +00:00
apnadkarni 6256826851 Move UCD readers into separate file 2025-07-22 12:02:50 +00:00
apnadkarni ea81bf32fd Add normalization tests for nul and tcl8 profile. Fix linker warnings on Windows. 2025-07-22 10:40:26 +00:00
sebres aca16ea11e merge 9.0 to trunk: amend to [61c01e0edb08a9ed], more cases for increment ref-count with use-after-free prevention for interim normalized path object; provide fixes minimally invasive (if API used with fresh created path object, so decrement would not destroy it if normalized path equal original given path) 2025-07-21 18:57:36 +00:00
sebres 534a653ec5 merge 8.6 to 9.0: amend to [61c01e0edb08a9ed], more cases for increment ref-count with use-after-free prevention for interim normalized path object; provide fixes minimally invasive (if API used with fresh created path object, so decrement would not destroy it if normalized path equal original given path) 2025-07-21 18:54:00 +00:00
sebres a0a9b6dcfe cherry-pick to 8.7: amend to [61c01e0edb08a9ed], more cases for increment ref-count with use-after-free prevention for interim normalized path object; provide fixes minimally invasive (if API used with fresh created path object, so decrement would not destroy it if normalized path equal original given path) 2025-07-21 18:46:20 +00:00
sebres ed44479c02 merge 8.5 to 8.6: amend to [61c01e0edb08a9ed], more cases for increment ref-count with use-after-free prevention for interim normalized path object; provide fixes minimally invasive (if API used with fresh created path object, so decrement would not destroy it if normalized path equal original given path) 2025-07-21 18:32:50 +00:00
sebres e7e759c639 amend to [61c01e0edb08a9ed], more cases for increment ref-count with use-after-free prevention for interim normalized path object; provide fixes minimally invasive (if API used with fresh created path object, so decrement would not destroy it if normalized path equal original given path) 2025-07-21 18:21:43 +00:00
sebres 2199252609 merge 9.0 to trunk: fixes [61c01e0edb08a9ed] (TclpMatchInDirectory, windows only), increment ref-count to avoid use-after-free for interim normalized path object, what may cause crash (SF/BO), usage of wrong path, etc. 2025-07-18 17:45:41 +00:00
sebres 876767083c merge 8.6 to 9.0: fixes [61c01e0edb08a9ed] (TclpMatchInDirectory, windows only), increment ref-count to avoid use-after-free for interim normalized path object, what may cause crash (SF/BO), usage of wrong path, etc. 2025-07-18 17:38:39 +00:00
sebres a3d0c99f90 cherry-pick to 8.7: fixes [61c01e0edb08a9ed] (TclpMatchInDirectory, windows only), increment ref-count to avoid use-after-free for interim normalized path object, what may cause crash (SF/BO), usage of wrong path, etc. 2025-07-18 17:36:53 +00:00
sebres 8a6d551ee9 merge 8.5 to 8.6: fixes [61c01e0edb08a9ed] (TclpMatchInDirectory, windows only), increment ref-count to avoid use-after-free for interim normalized path object, what may cause crash (SF/BO), usage of wrong path, etc. 2025-07-18 17:29:45 +00:00
sebres 6f2c08cfba fixes [61c01e0edb08a9ed] (TclpMatchInDirectory, windows only), increment ref-count to avoid use-after-free for interim normalized path object, what may cause crash (SF/BO), usage of wrong path, etc. 2025-07-18 17:20:51 +00:00
jan.nijtmans e70e02aab1 Merge 9.0 2025-07-18 17:06:10 +00:00
jan.nijtmans 2daeb0565c Add check for working --disable-high-entropy-va. Fix check for --enable-auto-image-base (which always succeeded) 2025-07-18 17:02:29 +00:00
jan.nijtmans 2b2b32b443 Add check for working --disable-high-entropy-va. Fix check for --enable-auto-image-base (which always succeeded) 2025-07-18 11:52:06 +00:00
jan.nijtmans de46562053 Add check for working --disable-high-entropy-va. Fix check for --enable-auto-image-base (which always succeeded) 2025-07-18 09:52:12 +00:00
jan.nijtmans 2ace0d782d Fix 2 warnings on 32-bit platform (thanks, Emiliano) 2025-07-18 07:37:28 +00:00
dgp 19597ae983 merge trunk 2025-07-17 15:36:57 +00:00
jan.nijtmans 6a43f423dd Fix installation of dde/registry packages (Thanks, Harald, for noticing this!) 2025-07-17 07:59:16 +00:00
jan.nijtmans 021fd1ff48 Merge 9.0 2025-07-17 07:47:44 +00:00
jan.nijtmans f8247a2168 Merge 8.6 2025-07-17 07:41:05 +00:00
jan.nijtmans a60a7ac7fe Fix [https://core.tcl-lang.org/tk/info/06892c6e12|06892c6e12]: loading windows dll's in Cygwin doesn't work with high-entropy-va 2025-07-17 07:15:30 +00:00
apnadkarni 7c68b17427 Merge 9.0 - Fix [c9f0520f7e] 2025-07-16 16:44:34 +00:00
apnadkarni ea1df3ef2f Merge 8.6. Fix [c9f0520f7e] - Tcl_SplitList memory size computation overflow. No test because not practical to overflow Tcl_Size on 9.0. 2025-07-16 16:26:59 +00:00
apnadkarni 3bef8ec09b Fix [c9f0520f7e] - Tcl_SplitList memory overflow overwrite 2025-07-16 15:26:05 +00:00
apnadkarni cd682b1c04 Check interp for NULL before storing error! 2025-07-16 11:26:46 +00:00
apnadkarni 0f5275b14a Merge 8.6 2025-07-16 10:49:49 +00:00
apnadkarni 336df7790a Add tests for C API 2025-07-16 04:53:02 +00:00
dgp bbab9a015b merge trunk 2025-07-15 16:35:37 +00:00
apnadkarni a8cab02183 TIP 726 implementation with tests 2025-07-15 11:41:33 +00:00
jan.nijtmans 38dd050c31 Merge 8.6 2025-07-15 10:25:46 +00:00
jan.nijtmans a0a0559a57 2 minor comment fixes 2025-07-15 10:21:13 +00:00
jan.nijtmans ccca22890b Minor review comment (since 8.6 still uses ckfree) 2025-07-15 10:14:35 +00:00
apnadkarni 2716ce3d66 Proposed fix for [c9f0520f7e] Tcl_SplitList crash. 2025-07-15 03:31:20 +00:00
apnadkarni 47587ebd98 Fix [25265a2705] - dup test names in listTypes.test 2025-07-15 02:31:28 +00:00
apnadkarni c2e2c4a697 Implement Tcl_UtfToNormalizedDString 2025-07-14 16:44:26 +00:00
jan.nijtmans 65c7ad34fa Backout [816e9ddf1b]: TclVarHashCreateVar() is still used in Itcl 2025-07-14 15:31:08 +00:00
dgp 52b53dbcdd Open release branch for 9.1a0 2025-07-14 12:30:56 +00:00
jan.nijtmans 6bf1afd146 Doc update. See [8cd74c5cd2] 2025-07-13 08:30:48 +00:00
jan.nijtmans b0e23ad925 Doc update. See [8cd74c5cd2] 2025-07-13 08:02:35 +00:00
jan.nijtmans 06a1734448 Doc update. See [8cd74c5cd2]. Backport more doc improvements from 9.1 2025-07-13 07:51:22 +00:00
jan.nijtmans ba38b6cea6 [8cd74c5cd2]: 2-argument string toupper/tolower/totitle doesn't work as documented. Either change the documentation, or the implementation. Both are done in this commit (but only one of them should be merged to trunk) 2025-07-12 16:42:09 +00:00
apnadkarni 62eacf8ebe Start on TIP 726. Add utf8proc to the build system 2025-07-12 16:03:14 +00:00
jan.nijtmans ef850bd3a0 Some int -> Tcl_Size modifications, and type-cast changes, which were missed up to now. 2025-07-10 11:50:06 +00:00
jan.nijtmans b3b003d246 Related to [bdaf890168]: Use Tcl_Size in stead of int while using TclParseAllWhiteSpace() 2025-07-09 12:31:12 +00:00
apnadkarni b07fe3c505 Fix [f8dd3d8d35]. Memory leak in uplevel compile 2025-07-08 14:23:55 +00:00
apnadkarni 8085d204d7 Proposed fix for [f8dd3d8d35]. Memory leak in uplevel compile. 2025-07-08 02:58:56 +00:00
apnadkarni 73f2d6513d TIP 649 2025-07-05 09:36:47 +00:00
apnadkarni 2109dff83a Merge trunk 2025-07-05 06:05:51 +00:00
jan.nijtmans f06c8a3d20 Merge 9.0 2025-07-03 11:59:16 +00:00
jan.nijtmans 9e1bc61476 Version -> 9.0.3 2025-07-03 11:57:22 +00:00
jan.nijtmans 762708ab50 Fix [6b8e39e83]: On Unix, IsTimeNative() always defined but not always used 2025-07-03 10:42:21 +00:00
jan.nijtmans 3d5e1fb308 Merge 9.0 2025-07-03 09:20:53 +00:00
jan.nijtmans 94dd5e9438 Merge-mark 2025-07-03 08:11:40 +00:00
jan.nijtmans 40bc3d16a3 Fix [6b0f776c52]: gcc 14 breaks configure test for bigendian leading to broken floating point 2025-07-03 07:45:14 +00:00
dgp 2adf0b83d7 merge release 2025-07-02 15:16:16 +00:00
dkf 54136d25d0 merge trunk 2025-07-02 09:22:39 +00:00
dgp 9b38e7eaac merge 9.0 2025-07-01 17:28:51 +00:00
dgp bdde44d6b9 Edits to the changes file 2025-07-01 15:23:13 +00:00
oehhar a3e198f2a3 [0cb3d93a] fix example in link documentation 2025-07-01 07:56:25 +00:00
oehhar 5b4e86c7a0 [0cb3d93a] fix example in link documentation 2025-07-01 07:55:02 +00:00
dgp 6e0ff4b84b Note the new releases of bundled packages in the changes. 2025-06-30 21:23:58 +00:00
dgp 1e0f6be02c merge 9.0 2025-06-30 20:11:39 +00:00
dkf e089c89de1 Make some internal magic flags into an enum. Nobody will ever override these. 2025-06-30 14:59:32 +00:00
dkf 9803c5d84e slightly clearer code 2025-06-30 13:54:36 +00:00
dkf 3e8be918cd merge trunk 2025-06-30 11:20:55 +00:00
dkf c3e2f4c937 Thinking about unsupported commands, their declarations, and their safety models 2025-06-30 11:19:56 +00:00
jan.nijtmans 6672201fbc Unbreak build with clang, introduced in last few commits 2025-06-29 19:38:44 +00:00
dkf e21981b112 Don't need the post-init special stuff for [clock] any more 2025-06-29 10:39:08 +00:00
dkf 219279de92 Tidy up the initialisation code in [clock] 2025-06-29 07:30:24 +00:00
dkf c8fad65dd6 merge trunk 2025-06-29 07:11:15 +00:00
dkf 8c0dc805cd Add bytecode compilation of [uplevel] 2025-06-29 06:36:50 +00:00
dkf 422b3ecbcf merge trunk 2025-06-29 06:25:43 +00:00
dkf e62ab4d404 Add bytecode compilation of [lseq] 2025-06-29 06:21:24 +00:00
dkf 96bbc0c981 Add bytecode compilation of [ledit] and [lpop] 2025-06-29 06:09:32 +00:00
dkf 61c8ce5b04 Make [clock] into a more conventional ensemble 2025-06-28 21:24:04 +00:00
dkf 16aaea75d6 Turns out [encoding user] should be safe 2025-06-28 13:37:36 +00:00
apnadkarni e949008e88 Merge 9.0. Fix test exec-bug-4f0b5767ac error when MSYS scrubs PATH 2025-06-28 10:47:53 +00:00
apnadkarni a6f48f1b52 Fix test exec-bug-4f0b5767ac error when MSYS scrubs PATH 2025-06-28 10:45:43 +00:00
dkf e383fa566d More unification of the mess 2025-06-28 08:34:29 +00:00
dkf 7a1cb1faf2 Move [zlib] ensemble creation to join rest 2025-06-27 16:08:29 +00:00
dkf 63bbb50d0f Convert [zlib] to an ensemble, as was always planned. 2025-06-27 16:02:58 +00:00
jan.nijtmans 487de56886 Merge 9.0 2025-06-27 15:41:21 +00:00
jan.nijtmans 6a6decf477 Fix [9dfae3413d]: interp limit commands still seems to be 32 bits 2025-06-27 15:28:01 +00:00
jan.nijtmans e8074e95c8 Fix [ef7042075c]: tcl::build-info not documented 2025-06-27 15:20:01 +00:00
dkf 6c228155c2 Cleaning up how we go about declaring some of our ensembles. Work in Progress. 2025-06-27 15:01:25 +00:00
dkf 7674a0a096 merge trunk 2025-06-27 10:55:20 +00:00
dkf 3cfaeee196 merge trunk 2025-06-27 10:53:43 +00:00
dkf 762be326fa merge trunk 2025-06-27 10:50:43 +00:00
dkf 154103182f All test cases now pass. 2025-06-27 10:50:11 +00:00
jan.nijtmans 3bcefeb187 Merge 9.0 2025-06-27 08:34:44 +00:00
jan.nijtmans 7c11542f4b doc fix 2025-06-27 08:12:13 +00:00
dkf 30ccaab7b5 Some of the test failures fixed... 2025-06-27 08:03:03 +00:00
apnadkarni 5e9107b596 Make exec-bug-4f0b5767ac test independent of locale 2025-06-27 07:45:18 +00:00
jan.nijtmans 1894fc6ad8 Make all references to -DFOO compiler flags bold in documentation 2025-06-27 07:16:03 +00:00
dgp 8ea068e036 merge 9.0 2025-06-26 14:51:57 +00:00
dkf dc70fe24d8 Compiled [uplevel] works. Except for some tests which see differences in [info frame] as a result. 2025-06-26 14:28:29 +00:00
jan.nijtmans e5a97adb09 Merge 9.0 2025-06-26 13:46:33 +00:00
jan.nijtmans aefb06c648 Document what happens for non-documented field values 2025-06-26 13:38:36 +00:00
dgp d478842859 [27fa01a7db] Restore default option to [namespace which] implementation. 2025-06-26 13:19:43 +00:00
dkf 3a9a1d35a2 Draft of instruction done... but crashes. 2025-06-26 13:12:02 +00:00
jan.nijtmans 7566ab092d Merge 9.0 2025-06-26 11:15:59 +00:00
jan.nijtmans b7edd506c4 Make everthing compile (again) and run with a C++ compiler. 2025-06-26 11:14:11 +00:00
dkf 085b074763 Start of developing compilation for [uplevel] 2025-06-26 10:45:06 +00:00
dkf 0b43339d2d mark some more commands for future expansion consideration 2025-06-26 10:32:07 +00:00
jan.nijtmans 02a970ec10 Merge 9.0 2025-06-26 09:56:50 +00:00
jan.nijtmans d6fc8b284d tclWinPipe.c:3427:12: warning: unused parameter ‘wakeEvent’ [-Wunused-parameter] 2025-06-26 09:55:11 +00:00
jan.nijtmans cbe9e9a809 @dkf's review comments (Thanks!) 2025-06-26 08:48:02 +00:00
jan.nijtmans f9990a0f19 Fix Tcl_LimitGetCommands() signature (int -> Tcl_Size) 2025-06-26 08:03:33 +00:00
jan.nijtmans 205739018a Fix [9dfae3413d]: interp limit commands still seems to be 32 bits 2025-06-26 07:59:27 +00:00
dkf 8598556104 merge trunk 2025-06-26 07:56:35 +00:00
dkf 71097a6706 Change bytecode flag names to match their related instruction 2025-06-26 07:53:31 +00:00
jan.nijtmans d7f4a6d13e [ef7042075c]: tcl::build-info not documented 2025-06-26 07:35:48 +00:00
apnadkarni 3be9e6d944 Merge 9.0 - Fix [40b1814b93] and [7c2716733a] Window handle use-after-frees. 2025-06-25 16:41:27 +00:00
apnadkarni f928d5b23c Fix [7c2716733a] - use after free on Windows pipe handles 2025-06-25 16:23:23 +00:00
apnadkarni 1c6cb16d80 Fix [40b1814b93] - use after free on TSD in Winsock 2025-06-25 15:48:13 +00:00
dkf 3cfff34eda Better disassembly of [lpop]-related flag argument 2025-06-25 13:46:01 +00:00
dgp f79b9166bc merge 9.0 2025-06-25 13:44:07 +00:00
jan.nijtmans 31769b7abd Merge 9.0 2025-06-25 12:20:30 +00:00
jan.nijtmans 85b276e76c Merge-mark 2025-06-25 12:04:48 +00:00
jan.nijtmans 264e9e9793 Fix [ecafd8611d]: Euro/Tail-sign missing from cp864 encoding 2025-06-25 11:51:09 +00:00
jan.nijtmans a49a4bbffb Fix [ecafd8611d]: Euro/Tail-sign missing from cp864 encoding 2025-06-25 11:15:53 +00:00
jan.nijtmans e57c57e122 Fix [ecafd8] Euro-sign missing from cp864 encoding 2025-06-25 09:38:58 +00:00
dkf 67c943b748 Better argument processing order in [lpop] compiler. Not necessary, but nicer to read 2025-06-25 09:10:40 +00:00
dkf ac76d9e4ab Handle non-trivial single indices in [lpop] compiler 2025-06-25 07:25:04 +00:00
apnadkarni 2b3b4ebbc5 Merge 9.0 2025-06-25 03:29:27 +00:00
apnadkarni c1d05abf22 Merge 9.0 2025-06-25 03:09:52 +00:00
dkf 62c4575178 merge trunk 2025-06-24 20:18:46 +00:00
dkf 8aa383a745 Better compilation of [ledit]. Still not convinced about refcount management 2025-06-24 20:16:41 +00:00
dgp 5193d058c2 [ecf35c7120] Correct nested handling of return option -options
(backport from 9.0)
2025-06-24 17:15:01 +00:00
dgp 902845d02c merge 9.0 2025-06-24 16:55:07 +00:00
dgp ce0b58e658 merge 9.0 2025-06-24 16:35:48 +00:00
dgp 14e556f9a8 [ecf35c7120] Correct nested handling of return option -options 2025-06-24 16:23:04 +00:00
jan.nijtmans 122a3f6a2d Add testcases 2025-06-24 15:09:15 +00:00
jan.nijtmans 69768ac78c Fix encoding-28.0 unit-test, since we now have an additional encoding 2025-06-24 14:59:34 +00:00
jan.nijtmans 487afeafb4 Fix [ecafd8611d]: Euro-sign missing from cp864 encoding. While on it, add cp165 which is very similar to cp864 2025-06-24 14:54:48 +00:00
dkf fdc6c3c574 Note about variable ordering 2025-06-24 08:11:43 +00:00
dkf 335fe6ca1b Add [ledit] compilation, tweak safety conditions in [lpop] compiler 2025-06-24 08:02:26 +00:00
dgp 2190a2514e [ecf35c7120] Pending fix for nested -options processing. 2025-06-23 19:58:15 +00:00
dgp ea0de2921b Two more tests demonstrating the inconsistency between processing
-options {...} to emulate {*} argument expansion and processing
according to the behavior of dictionaries and how [dict create] combines
its arguments, notably how it handes duplicate keys.

This is exposed by nested -options, because the outer processing handles
in one way, while the nested processing handles in the other way.
2025-06-23 17:36:21 +00:00
dkf b04007aaac Move test to runtime, check enabled by new flag bit to INST_LREPLACE 2025-06-23 16:17:42 +00:00
dkf e59d1e6773 Add in test for index-in-range. Not enough... but fixes some test cases. 2025-06-23 16:04:28 +00:00
dkf cfc1c45f9c Tweak tests; still test the same thing, but more succinctly 2025-06-23 14:55:41 +00:00
dkf 38c98a9188 improve tests: run in procedure context as well as outside 2025-06-23 11:33:13 +00:00
dkf ce84c0cbdf Partial compilation of [lpop]; missing error handling 2025-06-23 11:14:19 +00:00
dkf 1f3226a301 Mark some commands as needing bytecode compilation. Capitalise some function names to follow Tcl style 2025-06-23 07:39:13 +00:00
dkf d10d3c0109 Move code that might work to shared place, and delete copy that definitely won't ever work 2025-06-23 07:26:33 +00:00
dkf de1b3e5f51 merge trunk 2025-06-23 06:57:16 +00:00
dkf 658d48aa3d Make [yieldto] work with {*}; turns out no new opcodes were needed, just a test for a previously-impossible case 2025-06-22 13:52:20 +00:00
apnadkarni 35eb57cea4 Merge trunk 2025-06-22 08:44:53 +00:00
apnadkarni c597f2f1ef Avoid repetion in manpage 2025-06-22 08:43:51 +00:00
apnadkarni cf9fe5ef56 Update manpages for TIP 649 2025-06-22 08:39:08 +00:00
apnadkarni 678110bd7c Better limit exceeded message 2025-06-22 05:01:21 +00:00
apnadkarni aef3a929b3 Clean up comments 2025-06-22 03:17:40 +00:00
apnadkarni 194cddfd12 Use list limit error reporting function 2025-06-22 02:43:25 +00:00
dkf a38eeba66e merge trunk 2025-06-21 10:31:46 +00:00
dkf 8ad2688176 Make the bytecode compilation of [next] and [nextto] understand {*} in arguments. 2025-06-21 10:29:29 +00:00
apnadkarni 719ebf8b87 Update two tests - lassign will no longer shimmer abstract lists even if they lack a slice method 2025-06-21 10:10:47 +00:00
apnadkarni 958ec4335d Merge trunk 2025-06-21 09:46:28 +00:00
dkf 49089cef96 Better express intent of a cast 2025-06-21 08:06:26 +00:00
dkf 1a79a75a32 merge trunk 2025-06-21 07:57:19 +00:00
dkf 784ab1f958 merge trunk 2025-06-21 07:56:31 +00:00
dgp 09774951f6 [ecf35c7120] Test for the bug. Open branch for fixing. 2025-06-20 17:24:27 +00:00
dgp 16338bb4f3 silence compiler warning 2025-06-20 17:14:08 +00:00
apnadkarni 5efdd42a9c Merge 9.0. Fix [e8b18d7b1f] - release encodings on error 2025-06-20 16:05:22 +00:00
apnadkarni fb38055c70 Fix [e8b18d7b1f] - release encodings on error 2025-06-20 16:00:23 +00:00
dkf ee029b3673 Clean up aux data correctly on failed compile [c587295271] 2025-06-20 15:51:53 +00:00
apnadkarni 3e2ff8b89a Partial fix for [c587295271] memory leak in TclCompileTryCmd 2025-06-19 16:14:57 +00:00
dkf b107ed5736 Move general variable compiler to file where it makes sense 2025-06-19 14:08:10 +00:00
dkf 9146b55c7c Make more assoc-data keys into named defines, for greater mnemonicity 2025-06-19 13:52:17 +00:00
apnadkarni 32b0c9cf60 Start on [e8b18d7b1f] fix. 2025-06-18 18:12:18 +00:00
apnadkarni 18adb28567 Merge 9.0. Fix [4f338b91c1] - add missing Tcl_CloseEx docs 2025-06-18 17:39:32 +00:00
apnadkarni 7a96b5231d Merge 8.6. Fix [4f338b91c1] - add missing Tcl_CloseEx docs 2025-06-18 17:34:31 +00:00
apnadkarni c39440fea5 Fix [4f338b91c1] - add missing Tcl_CloseEx docs 2025-06-18 17:24:11 +00:00
apnadkarni bc96ad3d10 Fix indent 2025-06-18 17:14:34 +00:00
apnadkarni c345e3f187 Merge trunk 2025-06-18 15:55:09 +00:00
jan.nijtmans d398e2d4be Fix indenting/eol-spacing 2025-06-18 11:22:09 +00:00
dkf 82a37b1e4c tidy up some list related code; no functionality change 2025-06-18 10:48:30 +00:00
dgp dc473ea415 merge 9.0 2025-06-17 16:28:01 +00:00
dgp d24a2a5ac4 merge 9.0 2025-06-17 16:27:34 +00:00
dgp 36b48156dc [da5e1bc7bc] exec channel not closed on errors 2025-06-17 16:06:02 +00:00
oehhar 47c9ca68f3 Update macOS info in README.md and macosx/README 2025-06-17 14:52:15 +00:00
culler c5527d9690 Update macOS info in README.md and macosx/README 2025-06-17 13:35:58 +00:00
max b824b65e56 TIP 712 - Add "positive" options to the subst command 2025-06-17 12:27:48 +00:00
dkf 341c2d687c merge trunk 2025-06-17 10:17:49 +00:00
dkf 12a78dfc21 Make ParseArithSeriesArgument slightly better 2025-06-17 08:57:47 +00:00
dkf e20c64befb Reduce number of gotos (and general twistiness) in GenerateArithSeries 2025-06-17 08:51:10 +00:00
dkf 2743458b61 Move most of INST_ARITH_SERIES logic into a separate function. Much easier to understand that way. 2025-06-17 08:19:17 +00:00
apnadkarni c283aca1bc Document Tcl_CloseEx. Proposed fix for [4f338b91c1]. 2025-06-17 05:26:38 +00:00
apnadkarni eb4abe0f7d Bug [da5e1bc7bc] - exec channel not closed on errors 2025-06-17 04:26:54 +00:00
dgp f802179582 makeFile hygiene 2025-06-16 19:04:20 +00:00
dgp 18feee9d2d Dup test name 2025-06-16 19:01:44 +00:00
dgp 64f595c650 Open release branch for Tcl 9.0.2 2025-06-16 17:50:22 +00:00
dkf ff99e6d5f9 Add compilers for expanding [next] and [nextto] 2025-06-16 16:02:11 +00:00
dkf bc76a79c77 Neater comment 2025-06-16 11:54:09 +00:00
dkf d3b8585d89 Use function we have in other appropriate places 2025-06-16 11:52:14 +00:00
dkf e241457aad more cleaning up of the way [next]'s bytecode works 2025-06-16 11:43:35 +00:00
dkf c8c35ab394 Start of {*}-aware [next] and [nextto] 2025-06-16 10:41:48 +00:00
dkf cb45f3874a Unify the guts of ChildInvokeHidden a bit more. 2025-06-15 14:02:15 +00:00
apnadkarni ef37360d9b Fat fingers in constraints 2025-06-15 10:15:48 +00:00
dkf 9d74783887 Banish TclObjInvokeNamespace and leave TclObjInvoke just because its in the internal stubs 2025-06-15 07:42:44 +00:00
apnadkarni 47a5955ac3 Merge 9.0 - tests for handle leaks for exec 2025-06-15 03:03:13 +00:00
apnadkarni fea0d93f66 Add tests to check handle leaks for exec 2025-06-15 03:01:46 +00:00
apnadkarni 81fb9f5241 Bug [7c2716733a] - use after free on Windows event handle 2025-06-14 13:59:53 +00:00
apnadkarni 2473c10ae8 Disable additional tests under App Verifier - timing or locale do not work with it 2025-06-14 13:59:08 +00:00
apnadkarni 2ba69ec220 Merge 9.0 - Disable timing dependent tests when running under AppVerifier on Windows 2025-06-14 11:50:26 +00:00
apnadkarni c68492029e Merge core-9-0-branch 2025-06-14 11:44:45 +00:00
apnadkarni d724cd7809 Disable timing dependent tests when running under AppVerifier on Windows 2025-06-14 11:40:33 +00:00
dkf 3d797b72ce Starting to clean up hidden-command-invoke machinery. Remove unused flags. 2025-06-14 08:03:22 +00:00
apnadkarni 89215691c3 Bug [40b1814b93] - Proposed fix for Winsock use-after-frees 2025-06-14 05:31:49 +00:00
apnadkarni 1b22cd6dd6 Merge 9.0 - Add testhandlecount command. 2025-06-14 03:29:29 +00:00
apnadkarni ef7ed061de Add testhandlecount command to check Windows handle leaks 2025-06-14 03:25:33 +00:00
dkf 906914e69b merge trunk 2025-06-13 13:32:43 +00:00
dkf cd42c84fa4 Implement [tailcall {*}...] in bytecode 2025-06-13 13:27:53 +00:00
dkf 7579ea9f75 Add new macro, EnvIsProc, to cover cases where we should be stricter. [fa7995bdf2] 2025-06-13 08:14:31 +00:00
dkf 75b4d35b73 [fa7995bdf2] Add more direct test case for real bug 2025-06-13 07:46:41 +00:00
dkf 91db5c5a7c Move magic values into header file 2025-06-13 07:22:59 +00:00
dgp 7001c15b7d [fa7995bdf2] End multiple segfaults in httpcookie.test. 2025-06-12 15:08:52 +00:00
dkf f4ac476519 merge trunk 2025-06-12 08:58:07 +00:00
dkf a61858c717 Make sure there are no memory leaks in the arithSeries operation 2025-06-11 12:41:08 +00:00
dkf bcdc924f68 All edge case tests now pass. But why does [lseq] behave like this??? 2025-06-11 11:00:04 +00:00
dkf 2f132032d5 More edge cases 2025-06-11 08:45:36 +00:00
dkf 9986cde6f8 final cases 2025-06-10 16:28:27 +00:00
dkf 446de93988 Handle the three-argument cases 2025-06-10 16:07:17 +00:00
dkf 253476cc3d And I already have the right tools to make this easy. Excellent. 2025-06-10 15:32:47 +00:00
dkf 9b850035ce Add compilation of two arg case... and note that we need to compile args as expressions 2025-06-10 15:25:41 +00:00
jan.nijtmans d8be34de51 Merge 9.0 2025-06-10 15:12:44 +00:00
dkf 5f245527ed Basic [lseq] compiler that handles just the one case. 2025-06-10 15:12:43 +00:00
dkf 733bd10091 Name the operation's flag bits 2025-06-10 15:00:42 +00:00
jan.nijtmans 0e78735093 Fix [0ee626dfb2]: lseq numeric overflow 2025-06-10 14:18:14 +00:00
dkf ad4e4c45e1 Define an instruction to build an arithmetic series. Not yet issued 2025-06-10 13:53:59 +00:00
dkf 99892e00e0 Outermost skeleton of [lseq] compiler. Much more still to do! 2025-06-10 11:38:33 +00:00
dkf daef99dd55 Tinkering with the ArithSeries object type implementation 2025-06-10 11:34:13 +00:00
jan.nijtmans 515184cd74 Fix [b876737a0b]: tcl::tm::path doesn't handle tilde expand 2025-06-10 11:34:07 +00:00
jan.nijtmans 4353879f5f Let the caller of ::tcl::tm::roots do the [file tildeexpand] 2025-06-10 10:56:07 +00:00
dkf 48275f66a7 Delete code that caused failures with -ftrapv and otherwise did nothing useful 2025-06-10 09:08:23 +00:00
dkf fb09c90ddd Remove unused argument 2025-06-10 08:41:00 +00:00
dkf dbd967217d Convert defines to enums in remaining Windows-specific code 2025-06-10 07:53:06 +00:00
jan.nijtmans 986057c936 Backport github ACTIONS build scripts from Tcl 9.1 2025-06-09 19:08:03 +00:00
jan.nijtmans ad7f12c458 Fix for [b876737a0b]: tcl::tm::path doesn't handle tilde expand 2025-06-09 16:55:39 +00:00
jan.nijtmans 5aac54f483 Merge 8.6 2025-06-09 13:58:21 +00:00
apnadkarni 600682ddb0 Merge core-9-0-branch. Pick up fix for [0ee626dfb2] and other sundry unmerged changes 2025-06-09 13:41:41 +00:00
jan.nijtmans 255658907d Backout [ac279496ac], see [https://core.tcl-lang.org/tk/info/1562e10c58]. Since Tk 8.7 won't be released, we don't have to worry about multiple Tk versions for Tcl 8.6 2025-06-09 13:31:02 +00:00
apnadkarni 2e0d23a307 Fix [0ee626dfb2] - lseq numeric overflow 2025-06-09 13:17:48 +00:00
jan.nijtmans 57c208a39f Indenting 2025-06-09 11:17:54 +00:00
dkf acf59e16ca Greatly improved [tailcall] handling, including more special cases. 2025-06-09 08:18:09 +00:00
apnadkarni 59c8be1475 Clarify in manpage that lseq can produce doubles 2025-06-09 06:03:26 +00:00
apnadkarni 5b5fad01dc Merge trunk 2025-06-09 05:34:19 +00:00
apnadkarni f9deb8c844 Bug [0ee626dfb2] - arithseries integer overflow checks 2025-06-08 12:02:53 +00:00
dkf f97eb0d25a merge trunk 2025-06-08 11:58:01 +00:00
apnadkarni 3de83e7d0f Add test cases 2025-06-08 11:34:21 +00:00
dkf d5419d97ad Fix error 2025-06-08 11:30:01 +00:00
apnadkarni b1f17dd880 Create new branch named "bug-0ee626dfb2" 2025-06-08 11:18:31 +00:00
apnadkarni 8b33ac6a33 Added memory leak tests for Tcl_ListObj* 2025-06-07 16:08:16 +00:00
apnadkarni 9c10d869f1 Add Tcl_ListObjReverse tests 2025-06-07 15:17:36 +00:00
apnadkarni e017f1aa99 Tests for Tcl_ListObjRepeat 2025-06-07 07:55:43 +00:00
jan.nijtmans 78803b710f Fix [2bf9fbcb99]: Tcl 9 docs outdated regarding tcl_platform(threaded) 2025-06-06 22:34:11 +00:00
apnadkarni ca3367b862 Start on TIP 649 tests. Also fix [5773c78e86]. 2025-06-06 16:55:52 +00:00
dkf 2d78d176f7 merge trunk 2025-06-06 14:58:31 +00:00
dkf 533778a221 give tests human-readable names 2025-06-06 13:54:51 +00:00
dkf faf0b0bb41 fix silly capitalisation error 2025-06-06 13:33:10 +00:00
dkf cbd0c43170 After private testing, this works correctly and is shorter too 2025-06-06 13:29:37 +00:00
dkf 771304e296 [9a2351225c] Alternate, portable way of testing for [foreach] and [lseq] interacting badly 2025-06-06 08:39:54 +00:00
dkf 5ccb7ef51f That script can be used on the other two platforms too. Excellent! 2025-06-06 08:28:16 +00:00
dkf 95b8b03faf Move support Tcl script into its own file 2025-06-06 08:24:34 +00:00
apnadkarni c0706be7a3 Add new list functions to stubs 2025-06-06 05:49:35 +00:00
apnadkarni a695c641b4 Start on TIP 649 2025-06-05 13:49:37 +00:00
dkf 1528ac3974 Don't need to save the value from the subprocess in a variable 2025-06-05 12:49:07 +00:00
dkf 048eff0872 Alternate way of testing for no memory bloat in foreach+lseq; should be cross-platform and MUCH less sensitive to configuration 2025-06-05 08:42:11 +00:00
dkf b1a9db6241 rewrite test to use a constraint instead of a silly result condition 2025-06-05 08:17:53 +00:00
jan.nijtmans 639f531682 Check for tag "core-*", not "core-**" everywhere the same 2025-06-05 08:12:05 +00:00
dkf ee5b284f36 Correct syntax error in github action command files 2025-06-05 08:02:41 +00:00
dkf a389e3c6e0 Reduce size of build matrices for non-critical commits. This needs deeper Github Actions wizardry. 2025-06-04 10:51:44 +00:00
jan.nijtmans 08c6a2da63 Merge 9.0 2025-06-04 10:28:41 +00:00
jan.nijtmans e807400ab1 fix leak in lseq.test 2025-06-04 10:21:51 +00:00
jan.nijtmans f8f432d295 Simplify tcl::build-info parsing for testConstraint's 2025-06-04 07:54:00 +00:00
apnadkarni fe36246d23 Update changes.md for TIP's 711, 716, 717 2025-06-04 03:26:53 +00:00
apnadkarni be79619d49 TIP 716 - add stub for Tcl_GetEncodingNameForUser 2025-06-04 03:11:35 +00:00
dkf f21f669021 Make the [tailcall] compiler understand {*}; a common case 2025-06-03 15:16:07 +00:00
apnadkarni d304795c30 Test Tcl_GetEncodingName* functions callable via stubs 2025-06-03 05:00:27 +00:00
apnadkarni 3b31fb40bb Add stubs function from TIP 716 2025-06-03 03:34:57 +00:00
jan.nijtmans bc445e7c73 rebase to trunk 2025-06-02 15:52:36 +00:00
apnadkarni 7984436656 Merge mark 2025-06-02 15:45:38 +00:00
apnadkarni 4a8e2d81ba Update changes.md for TIP 716 2025-06-02 15:38:43 +00:00
jan.nijtmans f2a17c5b22 Merge-mark 2025-06-02 15:37:50 +00:00
jan.nijtmans 77156d4c79 Backport: Add [[unreachable]] and [[fallthrough]] from C23 (where available) 2025-06-02 14:18:14 +00:00
apnadkarni 8ac64535ce Merge core-9-0-branch: TIP 716 accepted 2025-06-02 12:42:50 +00:00
apnadkarni 5b9f178317 TIP 716 accepted 2025-06-02 12:07:31 +00:00
dkf 988b5626d2 Upgrade [lappend] so it bytecode compiles directly with expansion of arguments 2025-06-02 11:54:46 +00:00
dkf 12faf95da7 Ensure we never concatenate too many values at once 2025-06-02 11:42:02 +00:00
dkf 8b0c812b68 merge trunk 2025-06-02 11:24:58 +00:00
dkf aef70f2522 Use correct variable name... 2025-06-02 08:52:39 +00:00
apnadkarni d60548a9e4 Cherrypick 57d619a23f - Jan's changes for unused vars 2025-06-01 18:13:01 +00:00
apnadkarni 7781865c74 Merge core-9-0-branch 2025-06-01 15:32:38 +00:00
dkf 74f58faa04 Add [[unreachable]] and [[fallthrough]] from C23 (where available) 2025-06-01 10:24:33 +00:00
dkf da3cf9939a Should set variable earlier 2025-05-31 08:13:16 +00:00
dgp 3567df9219 [9a4876e887] Get ooWhat initialized before any error handling paths. 2025-05-30 19:35:52 +00:00
dgp 554c618110 silence compiler warning 2025-05-30 19:14:02 +00:00
dgp 819db434fa [fa7995bdf2] Stop crash in [http::cookiejar create]. 2025-05-30 18:55:57 +00:00
dkf 144b9dbe4b merge trunk 2025-05-30 14:17:53 +00:00
dkf aad6bf598b Minor refactor of some parts of TclOO code 2025-05-30 14:00:04 +00:00
dkf 153b8bdff2 Another switch that can be marked explicitly as exhaustive 2025-05-30 13:35:28 +00:00
dkf 902cc06bee Workaround for Clang being obnoxious 2025-05-30 08:28:08 +00:00
dkf 3cc1271121 Don't read uninitialised memory; store in TEBCdata instead 2025-05-29 20:26:35 +00:00
dkf e93593b44d Go back to other way of working; actually more efficient in this case 2025-05-29 15:18:39 +00:00
dkf 90f943cd7e merge trunk 2025-05-29 15:10:40 +00:00
dkf 360229c584 put back accidentally removed code 2025-05-29 15:07:03 +00:00
dkf 70a4e75039 Apple's clang-pretending-to-be-gcc is slightly fussy 2025-05-29 08:17:45 +00:00
dkf 388b19a717 more unreachable/fallthrough marks 2025-05-29 08:13:56 +00:00
dkf 30374aa721 More marking of paths as unreachable 2025-05-27 19:11:46 +00:00
dkf d66ab30b47 Add a TCL_UNREACHABLE macro for marking a code path as never reached
Inspired by https://en.cppreference.com/w/c/language/attributes/deprecated
2025-05-27 11:28:24 +00:00
apnadkarni 25cd27c5f9 Merge trunk 2025-05-27 06:34:11 +00:00
apnadkarni 83b2aa0d27 Merge 9.0. Disable unsupported icu tests for valgrind as dl_load of icu muddies valgrind output 2025-05-27 05:02:21 +00:00
apnadkarni 0b01b86143 Disable unsupported icu tests for valgrind as dl_load of icu muddies valgrind output 2025-05-27 05:01:08 +00:00
apnadkarni 4441a1e50e Proposed fix for memory leak in TclCompileTryCmd 2025-05-27 03:23:54 +00:00
apnadkarni eb0d66e414 Merge mark for 9.0 changes.md 2025-05-26 11:59:46 +00:00
apnadkarni dc4f524921 Update changes for fixed tickets 2025-05-26 11:56:49 +00:00
jan.nijtmans 8b31fedc41 Merge 9.0 2025-05-26 11:48:29 +00:00
apnadkarni 7e3ef08fb6 Update changes.md 2025-05-26 11:47:06 +00:00
jan.nijtmans 107c57ca1b Update changes.md 2025-05-26 11:41:49 +00:00
apnadkarni 945f615c7b New internal list representations for lreverse, lrepeat, lrange. See https://core.tcl-lang.org/tcl/wiki?name=New+abstract+list+representations 2025-05-26 11:40:37 +00:00
jan.nijtmans ae717334d5 Fix [1dcda0e862]: Build broken (trunk branch) tclCompExpr.c tclOOCall.c. Just by disabling the warning. 2025-05-26 11:40:28 +00:00
jan.nijtmans 3b592b5219 Indenting (backported from 9.1) 2025-05-26 11:37:48 +00:00
apnadkarni d7d9056c30 Merge trunk 2025-05-26 11:10:26 +00:00
apnadkarni 748d5f32af Merge 9.0 - Fix [7346adc50f] - memory runaway on truncated iso2022 encoding 2025-05-26 10:31:22 +00:00
apnadkarni c005dacb41 Fix [7346adc50f] - memory runaway on truncated iso2022 encoding 2025-05-26 10:29:00 +00:00
jan.nijtmans 9bae43c4bd Use TclAttemptInitStringRep() in a few more places where it's possible. Fix indenting. 2025-05-26 10:04:29 +00:00
apnadkarni 852fa59e1a Add table driven truncation at end test 2025-05-26 06:12:50 +00:00
apnadkarni a7b739076b Handle tcl8 and replace profiles for truncated escape encodings. Add tests. 2025-05-26 05:12:10 +00:00
apnadkarni f9f766a038 Start on [7346adc50f]. Now raise error on truncated encoding. Still have to handle replace and tcl8 profiles. 2025-05-25 17:27:37 +00:00
apnadkarni 7150de2e09 Merge trunk 2025-05-25 02:59:42 +00:00
dkf fa3f67a8a0 Factor out code for describing the args to a method. 2025-05-23 14:51:23 +00:00
dkf 54a68c240e merge trunk 2025-05-23 10:59:51 +00:00
dkf f8e0efb337 TIP 720: Bytecode generation improvements/sanity 2025-05-23 09:10:27 +00:00
dkf 7363563212 Clean up indentation and overlong lines 2025-05-23 09:03:35 +00:00
apnadkarni 7a364500e3 Move new list implementations to 9.1 2025-05-23 06:31:09 +00:00
apnadkarni 5f762bb600 Merged core-9-0-branch 2025-05-23 06:08:46 +00:00
apnadkarni 03e22cfc0b Create new branch named "apn-tip636-appl-91" 2025-05-23 06:07:03 +00:00
apnadkarni eaa37e601d Merge core-9-0-branch 2025-05-23 02:21:39 +00:00
apnadkarni 90537a506e Fix [c776eb586d]. Read codepage from registry (reported by Jan) 2025-05-23 02:18:55 +00:00
dkf 1fc44240ef Clean up the stat buffer renderer a bit 2025-05-22 19:36:32 +00:00
dkf 3a8fb6259e tidy up spaces 2025-05-22 14:35:42 +00:00
jan.nijtmans 79af923478 Merge 9.0 2025-05-22 12:05:05 +00:00
dkf 84424ae032 Improvements to TRACE macros and reduce warnings (on some platforms/configs) 2025-05-22 09:39:11 +00:00
jan.nijtmans 489ccf18e3 Minor optimization: Make sure that TclIsSpaceProcM() doesn't call TclIsSpaceProc() for 'negative' byte values 2025-05-22 09:25:06 +00:00
dkf 9ed67b650b MSVC doesn't like #ifdef in arguments to a macro 2025-05-22 08:11:34 +00:00
apnadkarni f25b55dab2 Implement expr in/ni for repeated and reversed list types 2025-05-22 03:19:42 +00:00
dkf 49630e80d0 Use the right internal macro 2025-05-21 10:52:30 +00:00
jan.nijtmans de86185353 Rebase to latest trunk 2025-05-21 10:09:15 +00:00
dkf d6369b82aa merge fix 2025-05-21 08:16:58 +00:00
dkf e434f59204 Add back missing file. I don't know why it keeps getting nuked... 2025-05-21 08:03:20 +00:00
apnadkarni 3e34903a66 Merge core-9-0-branch 2025-05-21 02:15:43 +00:00
apnadkarni fa1550002e Update docs 2025-05-21 00:53:05 +00:00
jan.nijtmans 78d200433f Rebase to attemptgetstring 2025-05-20 09:28:19 +00:00
dkf ea011362af merge trunk (indirectly) 2025-05-20 08:43:43 +00:00
dkf 79bb21e480 fix (rare) merge error 2025-05-20 08:41:34 +00:00
jan.nijtmans 8b34c1a36c Rebase to trunk 2025-05-20 08:39:33 +00:00
dkf b8c8a1e089 merge trunk 2025-05-20 08:39:25 +00:00
dkf 84a8099de4 Fix TEBC internal operand signedness/width; use better variable names for operands 2025-05-20 08:26:21 +00:00
dkf 82d0d7e8f6 merge no-variable-width-instruction-issue 2025-05-20 07:58:15 +00:00
dkf 3274e51c3d merge trunk 2025-05-20 07:56:37 +00:00
dkf e8d6373cee A few more corrections to Tcl_BounceRefCount usage; definitely no leaks in test suite 2025-05-20 07:55:29 +00:00
apnadkarni 9c80c68ddd Fix [3335120320]. Create include dir for installing extensions in non-default locations 2025-05-20 05:30:15 +00:00
apnadkarni d081333d18 Fix [3335120320]. Create include dir for installing extensions in non-default locations 2025-05-20 05:26:02 +00:00
dkf 5ac88d557b Disable deprecation notices with MSVC; they can get them if they turn on support for C23 2025-05-19 12:01:16 +00:00
dkf d36b9c2f04 Promote IsEmptyToken to TclIsEmptyToken, and use in other relevant places 2025-05-19 11:58:18 +00:00
apnadkarni 437469e561 Some small clarification to abstract list method docs 2025-05-19 11:52:10 +00:00
jan.nijtmans a5f938c089 Update version in .project file 2025-05-19 10:28:56 +00:00
jan.nijtmans 9895c894eb Update version in .project file 2025-05-19 10:27:26 +00:00
dkf ca7a999e31 Don't generate the next clause of [for] if it's known to be empty 2025-05-19 09:04:41 +00:00
dkf d0c2748490 Use the sense of space-ness from the parser, not the unicode support 2025-05-19 07:44:59 +00:00
dkf 76f761568f fix errors 2025-05-18 20:26:14 +00:00
apnadkarni f5ef4d38df Bug [3335120320]. Fix for case where extension is installed into a directory other than where Tcl is installed 2025-05-18 15:53:31 +00:00
apnadkarni fab56fa45e merge core-9-0-branch 2025-05-18 06:31:01 +00:00
dkf e6c128cbf2 merge tebc-opnd-types 2025-05-17 15:10:13 +00:00
dkf edf393be35 Can't just blithely use unsigned; need more Tcl_Size. But that works. 2025-05-16 14:18:29 +00:00
dkf 9d85173a2e A bit of tweaking to reduce warnings. 2025-05-16 11:17:51 +00:00
jan.nijtmans 0f0ef95fc2 Merge 8.6 2025-05-16 11:02:26 +00:00
jan.nijtmans 6e0db94a9d Disable filename-16.14 testcase in Github CI. Something changed in this environment, nothing changed in the code 2025-05-16 10:56:07 +00:00
dkf c12e6dbf75 Fix TEBC internal operand signedness/width 2025-05-16 09:51:46 +00:00
apnadkarni 50608de2c5 Oops, CLANG_ASSERT->assert 2025-05-15 15:56:48 +00:00
apnadkarni 446266097d Minor cleanup 2025-05-15 15:39:40 +00:00
jan.nijtmans e24f97b843 New function Tcl_AttemptGetString(). WIP 2025-05-15 15:14:11 +00:00
dkf c25ad1a4f8 Actually, standards-compliant compilers should use the standard form for deprecation 2025-05-15 15:10:38 +00:00
dkf 2544183a75 Minor optimisation in light of TIP 717 2025-05-15 15:01:15 +00:00
dkf 871fe3faef merge no-variable-width-instruction-issue 2025-05-15 14:55:44 +00:00
dkf 270bfcdea8 merge trunk 2025-05-15 14:54:46 +00:00
dkf 29754b05f9 Need to test _MSVC_VER to see if we're in 19.0 or later to enable [[deprecated]] 2025-05-15 13:15:09 +00:00
dkf 10bb86ea93 Drop reference counts on duplicated objects on error: DICT_PUT and DICT_REMOVE 2025-05-15 13:03:11 +00:00
jan.nijtmans 002e79048e Something changed in the Github CI environment. Does this fix filename-16.14 testcase? 2025-05-15 11:52:55 +00:00
apnadkarni 7efed926c7 Add tests for memory leaks 2025-05-15 11:35:18 +00:00
apnadkarni f90c3345c3 Use internalRep.twoPtrValue.ptr1 and initialize .ptr2 to NULL instead of using
otherValuePtr. Otherwise valgrind complains as Tcl_Representation accesses
.ptr2 which is uninitialized.
2025-05-15 05:59:26 +00:00
dkf acd7724c05 remove TODO comment 2025-05-14 13:19:00 +00:00
dkf bff3f2dd2f Make the [lappend] command into one that handles expansion natively 2025-05-14 12:19:40 +00:00
apnadkarni e01a65c24c Complete list operation tests 2025-05-14 12:15:24 +00:00
jan.nijtmans 01d5620da3 Merge 9.0 2025-05-14 09:19:04 +00:00
jan.nijtmans fed74b785d Merge 8.6 2025-05-14 09:18:15 +00:00
jan.nijtmans 5c7bff1cc5 Fix scan-15.1 testcase for gcc on Windows (which has a slightly different "inf" representation) 2025-05-14 09:14:37 +00:00
jan.nijtmans 136f50db0c TIP 717: New function: Tcl_AttemptCreateHashEntry() 2025-05-14 08:09:51 +00:00
apnadkarni a3f94a0097 Bit more progress on test suite 2025-05-13 19:07:45 +00:00
jan.nijtmans 81eb10a4b0 Merge trunk 2025-05-13 15:58:54 +00:00
jan.nijtmans 0fbff582a7 Merge 9.0 2025-05-13 15:42:58 +00:00
jan.nijtmans 66c98f4d4b Merge 8.6 2025-05-13 15:41:57 +00:00
jan.nijtmans 2c85e6c487 Put (back) Tcl_CreateHashEntry() stub entry. For better upwards compatibility with TIP #717. Not used in Tcl 9.0 2025-05-13 15:41:21 +00:00
dkf 8ea4e9546e Expand comments and tidy up a little in the [lappend] compiler 2025-05-13 10:43:02 +00:00
jan.nijtmans dd341f2f32 Fix scan-15.1 testcase, for c runtimes which limit the number of float digits. 2025-05-13 10:37:28 +00:00
dkf 42b4d1bedc merge trunk 2025-05-13 07:27:50 +00:00
apnadkarni 82b04f5159 Add tests for more list operations and variable indices (when they have a separate code path from literals) 2025-05-12 15:50:18 +00:00
jan.nijtmans 6556ab4760 Remove Tcl_GetString() stub entry: it isn't used anywhere any more 2025-05-12 11:33:33 +00:00
jan.nijtmans 01c15c9471 Merge 9.0 2025-05-12 08:46:23 +00:00
jan.nijtmans edc53334b8 Forget speedup of TclLog2: Negative numbers should behave as 0. 2025-05-12 08:42:13 +00:00
jan.nijtmans c31c22399d _BitScanReverse64() is tested now, so remove comment. Slight speedup for TclLog2, using OR 2025-05-12 08:36:51 +00:00
dkf 46f009d004 fix INST_LAPPEND_LIST semantics with zero-length lists 2025-05-12 06:46:42 +00:00
apnadkarni 1532dda3a6 ledit and lreplace tests for new abstract lists 2025-05-10 15:12:04 +00:00
dkf 6df9c58baa Notes on expanded-lappend: requires a deep fix elsewhere, so for a future date 2025-05-10 09:26:35 +00:00
dgp 0c207b9ea8 [fd1585e2a1] Adopt efficient internal indexing calculation utility TclMSB(). 2025-05-09 18:13:17 +00:00
dgp 22ae5f87b1 [fd1585e2a1] Adopt efficient internal indexing calculation utility TclMSB(). 2025-05-09 18:10:25 +00:00
dgp d48629b9ef Shift stubs entry 2025-05-09 17:55:13 +00:00
dgp 99bea078a4 merge trunk 2025-05-09 17:52:45 +00:00
jan.nijtmans d2ad1e795b Merge 9.0 2025-05-09 14:07:22 +00:00
dkf 20d2ec6e5c merge trunk 2025-05-09 13:16:39 +00:00
dkf 7aaa9455d9 Final set of changes 2025-05-09 12:09:57 +00:00
jan.nijtmans 289e2110b2 Merge 9.0 2025-05-08 15:20:18 +00:00
jan.nijtmans 27c8c3dc74 Fix [9dcdddeefe]: compiler warnings. No need to put this in changelog, since it's introduced after 9.0.1. 2025-05-08 15:19:32 +00:00
jan.nijtmans 288c12c128 Merge-mark 2025-05-07 21:22:50 +00:00
jan.nijtmans 71fe7c4f6b Merge 8.6 2025-05-07 21:15:53 +00:00
jan.nijtmans 47f3be4dd5 Only call GetACP() once. Cleanup backported from 9.0 2025-05-07 21:01:31 +00:00
dkf bb250a700f merge trunk 2025-05-06 13:42:02 +00:00
dkf 774134c4d1 Fix comment indentation 2025-05-06 13:41:29 +00:00
jan.nijtmans 3ef286878c Change implementation, using 2 new stub entries 2025-05-06 09:06:53 +00:00
sbron e9893043e6 Fix links to tickets. 2025-05-06 08:46:45 +00:00
apnadkarni d958850448 Merge mark for update 9.0 changes.md 2025-05-06 07:58:13 +00:00
apnadkarni b93d7c7474 Update changes.md for fixed lseq tickets 2025-05-06 07:54:14 +00:00
jan.nijtmans 7fc7aed69a Merge 9.0 2025-05-06 07:45:01 +00:00
jan.nijtmans dbf02db556 Fix [8ffd8cabd1]: "encoding system": wrong result without manifest 2025-05-06 07:42:52 +00:00
dkf dc59ae942c Preparing to be able to disable the opcodes at some later date; we do not want to alter the opcode numbers when we do 2025-05-05 20:14:45 +00:00
dgp 48e73988cc Test of [testmsb] checking upper range boundary. 2025-05-05 19:40:29 +00:00
oehhar 1434c27a07 [78f44214] Document Tcl_InitStringRep: copy description from TIP 445: better than nothing... 2025-05-05 16:27:48 +00:00
jan.nijtmans 5b65a9597c Merge-mark 2025-05-05 15:38:09 +00:00
jan.nijtmans 8d9737dce6 Fix [b7834045b9]: MS-VC 6 on core-8-6-branch: compile error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64
No need to put it in change log, because regression was caused by [4128866276b86868]
2025-05-05 15:37:13 +00:00
dkf 81b05d6f7c merge trunk 2025-05-05 15:34:34 +00:00
dkf 3d5dd38186 Merge tclCompUtils.h into tclCompile.h 2025-05-05 15:34:04 +00:00
oehhar 346e7c322a [42d14c495a] Parsing long floating point strings 2025-05-05 14:49:59 +00:00
oehhar 60f057a56a Add to changes.md bug section: scan "long mantissa" %g [42d14c] 2025-05-05 14:47:52 +00:00
dkf 3a7e2240fe Clean up a bit 2025-05-05 14:43:47 +00:00
oehhar 39223e515f Add to changes: 2025-05-05 (bug) [42d14c] Fix scan with long mantissa. Ex.: scan "1.[string repeat 1 191]e-321" %g 2025-05-05 14:41:31 +00:00
oehhar 97dda3c5ae [42d14c495a] Parsing long floating point strings 2025-05-05 14:40:43 +00:00
oehhar 7ece2cabd3 [42d14c495a] Parsing long floating point strings 2025-05-05 14:30:52 +00:00
dgp 6762537033 Don't let tests pass out-of-range argument to TclMSB(). 2025-05-05 11:44:27 +00:00
jan.nijtmans 91605b23b3 Merge 9.0 2025-05-05 09:53:44 +00:00
jan.nijtmans 2629920242 Proposed fix for [8ffd8cabd1]: "encoding system": wrong result without manifest
Extracted from TIP 716 implementation
2025-05-05 09:14:42 +00:00
jan.nijtmans c66d425de7 Missing TclOOM() calls, which produce a panic when Tcl_InitStringRep() fails 2025-05-05 06:53:48 +00:00
oehhar 075a14cd43 [42d14c495a] Add source code comment and test case provided by Christian Werner (thanks) 2025-05-05 06:21:52 +00:00
dkf 6a1deb438a Minor tinkering 2025-05-04 16:43:44 +00:00
apnadkarni fef5304923 Use rangeList Tcl_ObjType for lassign of large lists 2025-05-04 06:51:29 +00:00
oehhar 0ec38e800a [42d14c495a] Add simple test cases 2025-05-03 13:15:15 +00:00
apnadkarni edac45ba9d Implement lrangeType Tcl_Obj 2025-05-03 12:05:05 +00:00
dgp 17f34e3ba3 merge 9.0 2025-05-02 18:31:31 +00:00
dgp 188fb8caef merge 8.7 2025-05-02 18:30:34 +00:00
dgp 47dd25a0aa Use Tcl_InitStringRep() as intended. 2025-05-02 18:29:24 +00:00
dgp e1b73c5bf9 merge 9.0 2025-05-02 17:58:26 +00:00
dgp e161f9e591 merge fix 2025-05-02 17:58:06 +00:00
dgp 51df805a81 Rework overflow test so it happens in a valid range. 2025-05-02 17:57:36 +00:00
dgp a52a5d2c33 typo 2025-05-02 17:00:11 +00:00
dgp 339ad177aa typo 2025-05-02 16:57:37 +00:00
dkf 1883a56f42 Update comment: INST_RETURN_CODE_BRANCH isn't needed in asm any more 2025-05-02 16:06:36 +00:00
dkf f41627abaf merge trunk 2025-05-02 16:03:34 +00:00
dkf 545df861f9 Combine the new jumptable into this branch 2025-05-02 15:54:41 +00:00
oehhar 996de513a6 [78f44214] Document Tcl_InitStringRep: copy description from TIP 445: better than nothing... 2025-05-02 12:31:29 +00:00
dkf cbc102971d Add INST_IS_EMPTY, a surfacing of Tcl_IsEmpty() to bytecode 2025-05-02 08:21:35 +00:00
jan.nijtmans ffbebf8e70 Deprecate (internal) TclVarHashCreateVar() function. It isn't (and shouldn't) be used by any extension. 2025-05-02 08:00:32 +00:00
jan.nijtmans c35a772d5d Merge TIP #717 2025-05-01 13:42:01 +00:00
jan.nijtmans d5e4b77d0c Rebase to trunk 2025-05-01 09:19:48 +00:00
apnadkarni 14a4628c7b Add framework for testing nested lists in different list type combinations 2025-05-01 05:50:08 +00:00
jan.nijtmans cbf913a0db Merge 9.0 (indenting) 2025-04-29 13:49:26 +00:00
jan.nijtmans adc1396c05 Indenting and comments, backported from 9.1 2025-04-29 13:48:09 +00:00
dkf 9a887dfbd0 Convert [try ... on ... finally ...] to use a jump table 2025-04-29 09:20:14 +00:00
jan.nijtmans 21e9ffe43e Unbreak (gcc) build 2025-04-29 08:51:25 +00:00
dkf 21b814fe40 Use a jump table for [try] without 'trap' or 'finally' 2025-04-28 21:22:02 +00:00
apnadkarni 3b18f71f67 Fix cmdAH tests. See comments below.
Tcl_GetEncodingForUser will not be available until 9.1 for stubs compatibility.
In any case, as a rule, wide char API's should be used in code and tests to avoid the exact kind
of problems we are currently trying to solve with code pages.
2025-04-28 11:30:02 +00:00
apnadkarni d0c903089c Pick up lindex fixes from 9.0 2025-04-28 10:16:32 +00:00
apnadkarni 81e35a06b0 Start on test suite for all internal list representations 2025-04-28 10:15:07 +00:00
apnadkarni 72587398cc Minor tweak. Pass interp as NULL as error thrown away. 2025-04-28 10:03:39 +00:00
apnadkarni 2ba6ccb2d3 Minor tweak. Pass interp as NULL as error thrown away. 2025-04-28 09:51:38 +00:00
apnadkarni 97a895b804 Fix [7d3101bf28] and [452b103a74] - lseq indexing crashes. 2025-04-28 09:20:38 +00:00
dkf 03bf5005ad Preparing to use a numeric jump table in [try]... but that's tricky to get right so it'll be in a later commit. 2025-04-28 09:03:29 +00:00
apnadkarni 622b224cca Fix [7d3101bf28] and [452b103a74] - lseq indexing crashes. 2025-04-28 09:01:15 +00:00
jan.nijtmans 5aafa55e3a Attempt to fix cmdAH test failures. Doesn't work. 2025-04-28 07:37:06 +00:00
apnadkarni f0c7e264c3 Fix compiled indexlist for lseq 2025-04-28 03:05:52 +00:00
apnadkarni abe74483a5 Partial fix and test cases for bug [452b103a74] - lseq nested indices 2025-04-27 14:59:58 +00:00
apnadkarni 8f532e2c01 Fix [7d3101bf28] - crash on out of bounds lindex into lseq 2025-04-27 10:48:52 +00:00
apnadkarni 4a6f46357a Fix lindex crash on non-numeric index into lseq 2025-04-27 10:42:36 +00:00
apnadkarni fe5d525a5f Crash tests for bugs [45b2] and [7d31] 2025-04-27 10:29:26 +00:00
dkf cf2d4e1175 Convert [subst] to use a numeric jump table instead of magic offset computations 2025-04-26 15:52:49 +00:00
dkf 1b495542d1 Whether a value is new to a jump table matters. 2025-04-26 15:08:29 +00:00
dkf 34ef6ab24e merge no-variable-width-instruction-issue 2025-04-26 13:36:28 +00:00
dkf afadee02ff Fix cut-n-paste-ism 2025-04-25 15:08:09 +00:00
dkf b6e55df9ad Add INST_DICT_REMOVE to go with INST_DICT_PUT 2025-04-25 14:37:55 +00:00
dkf df0dccce04 More towards the new jump table opcode 2025-04-25 13:52:40 +00:00
jan.nijtmans 9cef9b5146 Unneeded "#undef" 2025-04-24 10:09:34 +00:00
jan.nijtmans 16a945245e Unneeded (char *) typecast 2025-04-24 10:06:25 +00:00
dgp e60a52e5f4 High performance implementation using GNU compiler builtin. 2025-04-23 18:27:05 +00:00
dgp 2b7a8de697 Speculative high performance implementation using Microsoft compiler intrinsics.
UNTESTED!!!
2025-04-23 17:39:50 +00:00
dkf ee04d9eaf0 Starting to develop a new jump table type for numeric keys 2025-04-23 08:50:08 +00:00
dgp 9fdbc4beee Apply Tcl 9 guarantees and conventions. 2025-04-22 17:26:41 +00:00
dgp 244831158a Port the Brodnik adaptation implementaton of TclMSB() from dgp-refactor branch 2025-04-22 17:12:23 +00:00
dgp da337226f6 Update testing to Tcl 9 guarantees and conventions. 2025-04-22 17:00:18 +00:00
dgp 0b55fae9de Bring over testing command and tests for TclMSB() from dgp-refactor branch. 2025-04-22 16:50:34 +00:00
dgp d80ec3cb77 Restore TclLog2() status to be available only for --enable-symbols=compile 2025-04-22 16:30:58 +00:00
dkf 9fbb5bfe2c Make [switch -exact -nocase] compiled 2025-04-22 15:16:56 +00:00
dkf 6ca6f05f50 Better comments 2025-04-22 14:59:18 +00:00
dkf 72235814b1 Generate correct arguments to INST_TAILCALL so we don't need to patch them in TEBC 2025-04-21 16:52:17 +00:00
dkf e90a4c4300 Factor out some clock-related constants into their own enum 2025-04-21 15:37:21 +00:00
dkf 0435529c78 remove junk whitespace 2025-04-21 08:30:11 +00:00
apnadkarni a876e33794 Use abstract lists only above a element count threshold 2025-04-21 04:08:54 +00:00
dkf b0c0e248ee merge trunk 2025-04-20 19:58:16 +00:00
dkf 8b3e855588 merge trunk 2025-04-20 19:57:04 +00:00
jan.nijtmans 7e2e92ddd5 Rebase 2025-04-20 17:44:01 +00:00
jan.nijtmans 907f07d9ed Merge trunk 2025-04-20 17:07:27 +00:00
jan.nijtmans 2c31250a75 Merge 9.0 2025-04-20 17:03:36 +00:00
jan.nijtmans 373faf921b VarHashCreateVar() isn't used in tclExecute.c 2025-04-20 16:58:24 +00:00
jan.nijtmans e3d9f321cc Rebase to trunk 2025-04-20 16:19:32 +00:00
dkf 36502d377f Fix the weirdest bug in the assembler with getting line numbers wrong... sometimes. I'm not even sure that the right thing was being done before... 2025-04-20 15:14:21 +00:00
jan.nijtmans 43a3c29d5f 3th round of (harmless) -Wconversion fixes. Contains better fix for previous commit (thanks, dkf!) 2025-04-20 15:03:12 +00:00
dkf ca9e9b86fe Fix type.
In at least one compiler, having the line number as int just blew up the build. It's an internal type too; no compat concerns with having it be Tcl_Size.
2025-04-20 12:01:05 +00:00
apnadkarni d55bb8704f Add abstract list type for lrepeat 2025-04-20 07:49:51 +00:00
jan.nijtmans 3dbe279925 Merge trunk. Another round of (harmless) -Wconversion fixes 2025-04-19 16:43:36 +00:00
jan.nijtmans 93ed4b08a0 Many more (harmless) -Wconversion fixes, mainly for the regexp engine 2025-04-19 13:53:24 +00:00
jan.nijtmans 193015cead Finish -Wconversion warnings in regexp engine 2025-04-19 12:25:06 +00:00
apnadkarni 1800e536b9 Add an abstract list type for reversing lists 2025-04-19 11:41:18 +00:00
jan.nijtmans 24af21fea2 Merge 9.0 2025-04-18 14:04:28 +00:00
jan.nijtmans 2d712b15c8 Many more (harmless) -Wconversion fixes, mainly for the regexp engine 2025-04-18 09:22:14 +00:00
jan.nijtmans f3ca26c70c Merge 9.0 2025-04-17 21:04:13 +00:00
jan.nijtmans 320d2385bd Fix warning: variables 'ui' and 'maxSizeDecade' used in loop condition not modified in loop body [-Wfor-loop-analysis]
Remove unnecessary right-shift
2025-04-17 20:53:37 +00:00
jan.nijtmans be537120b2 off-by-8 (thanks, Don!) 2025-04-17 20:09:26 +00:00
dgp d6d5bfa8da Re-implement TclLog2() in terms of TclMSB with range limiting wrapped
around the core function.

NOTE: TclLog2() was implemented incorrectly.  As written it was never
going to return values 23 through 30.  It would falsely pin them up to 31.
This bug is still present on the trunk, so will need fixing if this
branch is not approved to merge.
2025-04-17 17:44:54 +00:00
dgp faa8ab0cd5 The callers of TclLog2() needed its range to be limited to [0..31].
RequiredPrecision needs support for the full long long range.  Create a 
new utility routine TclMSB() to provide the functionality without truncated
range.  Use it.  Put it internal stubs anticipating testing.
2025-04-17 17:30:26 +00:00
dgp 1b607bdb7c Remove code that purports to handle the circumstance when
sizeof(Tcl_WideUInt) > sizeof(long long)

It is believed this is never true in Tcl 9.
2025-04-17 16:41:41 +00:00
dgp 59490aaae6 Fix up the handling of zero input to RequiredPrecision 2025-04-17 16:30:12 +00:00
culler 4c2185881d Update macher version in onefiledist.yml so it will work with a thin macOS executable. 2025-04-17 15:01:57 +00:00
culler 5bb13f80e1 Update macher version in onefiledist.yml so it will work with a thin macOS executable. 2025-04-17 14:58:00 +00:00
jan.nijtmans 58f6f24117 Another round of -Wconversion warning fixes, see [03cff7a777] 2025-04-17 14:47:13 +00:00
dkf c507e624c9 remove unread field 2025-04-17 09:09:14 +00:00
dkf bf691d3163 Add INST_TCLOO_ID/tclooId to TAL 2025-04-17 09:07:25 +00:00
dgp ff5e57821e The routine RequiredPrecision() is just a variation on the same function
provided by TclLog2().  Re-implement as a simple wrapper.
2025-04-16 19:26:34 +00:00
dgp be32eaab0a Expose TclLog2() to all builds, not limited to --enable-symbols=compile 2025-04-16 18:54:05 +00:00
dgp 27486b5df1 Work in progress deploying further optimization and usage of TclLog2(). 2025-04-16 18:04:19 +00:00
dgp 9078ac0b31 Correct false claims in the header comment of RequiredPrecision() 2025-04-16 17:34:25 +00:00
dgp b1b52b0143 Correct false claims in the header comment of RequiredPrecision() 2025-04-16 17:34:13 +00:00
dgp 0cfc32b03b Correct false claims in the header comment of RequiredPrecision() 2025-04-16 17:32:50 +00:00
jan.nijtmans efbd8da8eb Rebase to TIP #717 2025-04-16 14:28:33 +00:00
dkf 05f269cd5d Clean up some code sections affected by change to always using 4-byte jumps 2025-04-16 12:37:25 +00:00
jan.nijtmans 2a75832f58 Rebase to trunk 2025-04-16 11:25:40 +00:00
jan.nijtmans 14564f4f18 (cherry-pick): Clarify exec manpage << entry that the value is encoded and lineendings converted 2025-04-16 09:33:56 +00:00
jan.nijtmans 8d959b904e Merge trunk 2025-04-16 09:32:13 +00:00
jan.nijtmans 7a0344e851 Merge 9.0. Fix some -Wconversion warnings, see [03cff7a777] 2025-04-16 09:00:15 +00:00
jan.nijtmans 905db9b9e8 Fix TestplatformChmod() test function: It should always translate from UTF-8 to native, since the native encoding is not guaranteed to be UTF-8 2025-04-16 08:02:44 +00:00
jan.nijtmans aca3422d8b Fix TestplatformChmod() function, so it can handle more than only ASCII 2025-04-15 12:00:56 +00:00
jan.nijtmans 654a9424d5 Missing Tcl_DStringFree() 2025-04-15 11:22:33 +00:00
jan.nijtmans e604fc9885 Fix TestplatformChmod() test function: It should always translate from UTF-8 to native, since the native encoding is not guaranteed to be UTF-8 2025-04-15 11:14:23 +00:00
jan.nijtmans 3bdb5a2c72 Testcase for TIP #716 2025-04-15 10:40:42 +00:00
jan.nijtmans 5d9c0803aa Missing TCL_NO_DEPRECATED 2025-04-15 09:10:23 +00:00
jan.nijtmans 3a13c0cb7f Fix more -Wconversion warnings 2025-04-15 07:11:51 +00:00
dkf c95b0265fe Give [dict merge] its own compiler using INST_DICT_PUT; enables better [try] and [dict create] compiling too 2025-04-14 19:28:58 +00:00
apnadkarni 14e69aa84a Fix Unix build. Add basic tests 2025-04-14 16:15:05 +00:00
jan.nijtmans ccbb03d8bc Merge 9.0 2025-04-14 14:06:37 +00:00
jan.nijtmans 06c8478fb6 Review [56f880ad7b|this] commit: Introduce TclNewNamespaceObj() to factor out a common idiom 2025-04-14 13:43:11 +00:00
dkf 6f364dbe9a Add [info object creationid] to fully compiled operations; simplify some instruction descriptors 2025-04-14 13:29:57 +00:00
jan.nijtmans 058c174f9a Put back comment, accidently removed 2025-04-14 11:58:21 +00:00
jan.nijtmans 26b91276e0 Finish documentation too 2025-04-14 11:23:49 +00:00
dkf 4aae0ffbc1 merge trunk 2025-04-14 10:46:38 +00:00
apnadkarni fc738b4914 Clarify exec manpage << entry that the value is encoded and lineendings converted 2025-04-14 10:46:34 +00:00
jan.nijtmans de0ceda9a4 Merge 9.0 2025-04-14 10:04:14 +00:00
dkf e5e5f16969 Minor improvement to [try/finally] instruction sequence 2025-04-14 09:11:09 +00:00
jan.nijtmans 479ac13c39 Update changes.md 2025-04-14 08:49:14 +00:00
jan.nijtmans 152e631a2f Fix [92aeb847f9]: proc with more than 2**31 variables 2025-04-14 08:43:50 +00:00
jan.nijtmans 75484939fa Error-message cleanup 2025-04-14 08:10:56 +00:00
jan.nijtmans 220901b1a4 Merge 9.0 2025-04-13 23:04:41 +00:00
jan.nijtmans 452e1362df Put back a comment, which should not have been removed 2025-04-13 23:00:58 +00:00
jan.nijtmans 5dbe7027b0 Merge 9.0 2025-04-13 22:53:07 +00:00
jan.nijtmans 4479fd5fde Remove comment which is not true any more: TclVarHashFindVar() is not used in Itcl at all.
Remove some unnecessary #undef's
2025-04-13 22:39:47 +00:00
jan.nijtmans 14d890b974 Implement Tcl_AttemptCreateHashEntry() 2025-04-13 22:16:52 +00:00
jan.nijtmans fa96ebe542 Fully functional now, with a lot of examples for the improvement. Also, merge trunk 2025-04-13 21:37:52 +00:00
dkf b66b111cda merge trunk 2025-04-13 20:58:34 +00:00
dkf 4c40845045 Macros for comparing tokens to literals, making compiler logically easier to read 2025-04-13 20:46:43 +00:00
apnadkarni ab04fcf882 Added -encoding option to exec 2025-04-12 16:57:22 +00:00
apnadkarni a43c5d1533 Added encoding user command 2025-04-12 15:11:18 +00:00
apnadkarni 7410337a6b Start on TIP 716 implementation 2025-04-12 12:03:19 +00:00
jan.nijtmans 4119b977f6 fix for BogusCreate() 2025-04-12 08:41:42 +00:00
jan.nijtmans 57250979da Attempt to change special value to (int *)-1. Doesn't work yet. 2025-04-12 08:24:28 +00:00
jan.nijtmans 903b7ae4eb Merge 9.0 2025-04-11 16:41:30 +00:00
jan.nijtmans b2a24bb096 Fix for [fd8341e496]: Tcl_InitStubs compatibility for 9.1 2025-04-11 16:35:50 +00:00
jan.nijtmans 6a1e109b2f Fix for [fd8341e496]: Tcl_InitStubs compatibility for 9.1 2025-04-11 16:26:36 +00:00
jan.nijtmans 414fd2647e (cherry-pick): Updated changes for [010d8f38]. Indenting 2025-04-11 16:18:01 +00:00
jan.nijtmans 9be3c0812f Merge 9.0 2025-04-11 16:05:31 +00:00
jan.nijtmans 282c367730 Fix and speedup for TclLog2() - only used with TCL_COMPILE_STATS. Can now handle values > 2**31 2025-04-11 15:46:48 +00:00
jan.nijtmans ce364879bd Fix [236d18f49b]: More efficient Tcl_FindHashEntry() 2025-04-11 10:36:16 +00:00
jan.nijtmans aecc096eaf More checks for numWords <= INT_MAX 2025-04-11 08:25:07 +00:00
dkf 7cf12dfe55 Some definite cleanup of the [switch] issuer, with neater passing of information around 2025-04-10 21:22:41 +00:00
jan.nijtmans f80cac4402 Slight improvement: Cleanup before creating error-message 2025-04-10 14:43:12 +00:00
jan.nijtmans edd424524b First attempt at fixing [92aeb847f9]: proc with more than 2**31 variables. At least, prevent the crash. 2025-04-10 14:22:57 +00:00
stevel b19f939c41 Updated changes with [tclEpollNotfy PlatformEventsControl panics if websocket disconnected](https://core.tcl-lang.org/tcl/tktview/010d8f38) 2025-04-10 04:56:43 +00:00
jan.nijtmans 34923aad0c Some corrections, found by Ashok. Thanks! 2025-04-09 20:01:17 +00:00
jan.nijtmans 834087db13 Merge 9.0 2025-04-09 16:29:07 +00:00
dkf 1e331d033a Cleaning up a bunch of things in code generation. 2025-04-09 14:18:06 +00:00
jan.nijtmans 4cd1f834e4 Update rules.vc 2025-04-09 13:49:54 +00:00
jan.nijtmans 735f6158af Merge 9.0 2025-04-07 17:56:04 +00:00
jan.nijtmans a58786b731 Remove OPTS=tk8 option: It was meant to be able to compile extesions witk Tk 8.7, which will never fly .... 2025-04-07 14:48:58 +00:00
jan.nijtmans 04226abc89 Merge 9.0 2025-04-07 09:42:45 +00:00
jan.nijtmans 5f6624d28f (cherry-pick): Fix [010d8f3885] tclEpollNotfy PlatformEventsControl panics if websocket disconnected 2025-04-07 09:41:52 +00:00
jan.nijtmans 991802b7f1 Fix [04aad56155]: __attribute__((noreturn)) conflicts with stdnoreturn.h 2025-04-07 09:37:29 +00:00
jan.nijtmans 5346e6ca8c Fix [04aad56155]: __attribute__((noreturn)) conflicts with stdnoreturn.h 2025-04-07 09:21:48 +00:00
stevel cf74137306 Fix [010d8f3885] tclEpollNotfy PlatformEventsControl panics if websocket disconnected 2025-04-07 04:20:04 +00:00
jan.nijtmans 9c0ece4de0 Merge trunk 2025-04-06 17:33:06 +00:00
jan.nijtmans 07b7d493a7 Merge 9.0 2025-04-06 16:26:17 +00:00
jan.nijtmans 728a234398 Fix [02fe7f5c89]: tcl::unsupported::icu::detect missing 32-bit error-check 2025-04-06 16:12:26 +00:00
jan.nijtmans 5958e00064 Merge 9.0 2025-04-06 16:00:59 +00:00
jan.nijtmans 2aeadec371 Eliminate some -Wconversion warnings. Fix comments 2025-04-06 15:55:57 +00:00
jan.nijtmans 38e2e55cdb Merge 9.0 2025-04-03 16:21:43 +00:00
jan.nijtmans 2dd9f130ed Prevent warning on Cygwin: warning: 'ECASECLASH' is no longer used by Cygwin 2025-04-03 16:20:56 +00:00
jan.nijtmans 525cfc5091 Prevent warning on Cygwin: warning: 'ECASECLASH' is no longer used by Cygwin 2025-04-03 16:19:15 +00:00
jan.nijtmans fa2f6c6b6c Rebase to 9.1. Un-deprecate Tcl_CreateCommand() 2025-04-03 15:55:25 +00:00
jan.nijtmans 07a8d444b6 Merge 9.0 2025-04-02 22:20:16 +00:00
jan.nijtmans 314753985e Fix "load" testcases on Cygwin, due to wrong --out-implib 2025-04-02 22:16:13 +00:00
jan.nijtmans edb79e4319 Merge 9.0 2025-04-02 21:51:43 +00:00
jan.nijtmans 91d7ff2952 Fix -Wconversion warnings 2025-04-02 21:45:59 +00:00
jan.nijtmans aeecd32b9b Proposed fix for [42d14c495a]: Parsing long floating point strings (thanks, Christian) 2025-04-02 21:18:41 +00:00
jan.nijtmans eb47492d3f Fix -Wconversion and unused parameter warnings. Backported from (but unrelated to) TIP #626 2025-04-02 21:12:44 +00:00
jan.nijtmans 97a4df8c73 Another bunch of -Wconversion warning fixes 2025-04-02 15:44:53 +00:00
jan.nijtmans 4fb31abfc4 Better MathFuncWrongNumArgs() signature 2025-04-02 09:34:43 +00:00
jan.nijtmans 8350391186 Another round of -Wconversion fixes 2025-04-02 08:52:24 +00:00
jan.nijtmans a55a11906e Another round of -Wconversion fixes 2025-04-01 13:18:05 +00:00
jan.nijtmans 986b19c86a Rebase to 9.1 2025-04-01 08:15:38 +00:00
jan.nijtmans 996e82172e Fix some -Wconversion warnings 2025-04-01 08:14:35 +00:00
jan.nijtmans c38577f802 Fix some -Wconversion warnings 2025-04-01 08:13:35 +00:00
dkf 2da305f8a5 More corrections 2025-03-30 17:11:03 +00:00
dkf 2cfdf85b05 Forgot a critical file. Derp! 2025-03-30 16:45:57 +00:00
dkf a28b305459 Reset after failure a bit more carefully. 2025-03-30 16:30:26 +00:00
jan.nijtmans 8153c00e31 Attempt to fix format-19.4.1 testcase with gcc on Windows (optimization bug???) 2025-03-30 08:54:08 +00:00
jan.nijtmans e1b0fcc169 Fix some -Wconversion warnings 2025-03-30 08:41:50 +00:00
dkf da24f7786c more consistency of error messages 2025-03-29 15:22:50 +00:00
dkf 56a69063a3 merge trunk 2025-03-29 15:12:33 +00:00
dkf 03b1518c78 Fix [while] compilation, remove a couple of useless tests (opcode changes) 2025-03-29 15:04:21 +00:00
dkf fd7e1e37cf Must reset exception ranges on syntax error in assembled code 2025-03-29 11:57:25 +00:00
dkf b6c3db45d7 Most tests working, but not yet all. 2025-03-29 09:23:17 +00:00
dkf c2fd0998d8 Many changes to basic opcode issuing to eliminate most 1-byte args. Not yet fully working... 2025-03-28 15:25:12 +00:00
jan.nijtmans f59f546538 Move more (int) typecasts to macro's 2025-03-27 11:17:49 +00:00
jan.nijtmans e328ea198c Remove invalid (size_t) typecast 2025-03-26 19:24:10 +00:00
jan.nijtmans 19e94892e0 More C4244 Windows warnings 2025-03-26 16:33:31 +00:00
jan.nijtmans d6b87adedd Merge 9.0 2025-03-26 11:01:44 +00:00
jan.nijtmans b21fccee77 Typo: there is no libucrt.lib 2025-03-26 10:39:15 +00:00
jan.nijtmans cacb5f0682 Typo: there is no libucrt.lib 2025-03-26 10:37:17 +00:00
jan.nijtmans 7f7d0467ab More int->Tcl_Size, making command processing 64-bit safe. 2025-03-26 10:34:13 +00:00
jan.nijtmans 1afe0492b4 Merge 9.1 2025-03-26 08:03:40 +00:00
jan.nijtmans b49efef45e Fix all (Windows) C4244 warnings in win/tclWin*.c files 2025-03-25 16:08:15 +00:00
jan.nijtmans 38990bc97e Make all tclComp* files 64-bit safe 2025-03-25 15:28:23 +00:00
jan.nijtmans f7fffd7237 int -> Tcl_Size in Tcl parser, so it can handle larger argument lists 2025-03-24 16:18:06 +00:00
stevel de280b868c Added comments explaining the tclEpollNotfy.c fix 2025-03-24 11:34:19 +00:00
jan.nijtmans c50eaa4b0a Remove 2 "> INT_MAX" checks, which are no longer necessary 2025-03-24 10:51:40 +00:00
stevel ee1b1b98f1 Ticket [https://core.tcl-lang.org/tcl/tktview/010d8f3885642212cf2c65036dd4ad444e9f769e]. A fix for a panic if tclEpollNotfy PlatformEventsControl TclOSfstat returns -1 which it does when using a websocket to a browser and the browser page is refreshed. As per discussions with Jan and Donal the only thing we can do is return and hope it doesn't leak too much memory. 2025-03-24 09:25:03 +00:00
jan.nijtmans 6628dedd13 Merge 9.0 2025-03-23 20:17:12 +00:00
jan.nijtmans 6f53513625 tzdata updated to Olson's tzdata2025b 2025-03-23 18:34:58 +00:00
jan.nijtmans cd5c0a947f tzdata updated to Olson's tzdata2025b 2025-03-23 15:46:18 +00:00
jan.nijtmans 569ac18cfc Remove TclCommandWordLimitError() utility function: it is not used any more 2025-03-21 13:25:52 +00:00
jan.nijtmans 23d6e7ce95 Rebase to 9.1 2025-03-18 23:15:54 +00:00
jan.nijtmans b98cd91cdf Merge 9.0 2025-03-18 21:07:49 +00:00
jan.nijtmans 670d34b2c8 "Makefile.in" part was missing from previous commit. Use $@ in stead of ${LIB_FILE} 2025-03-18 21:06:01 +00:00
dkf 5e77002675 Switch over to using 4-byte args; mark some ops as deprecated (gcc/clang) 2025-03-18 12:17:50 +00:00
jan.nijtmans 1685fee268 Fix [17960b80db]: Missing libtcl?.?.dll.a in Cygwin 2025-03-18 09:32:07 +00:00
jan.nijtmans fed145ffb1 Fix [17960b80db]: Missing libtcl?.?.dll.a in Cygwin 2025-03-18 08:40:02 +00:00
jan.nijtmans 8b89285e1e Proposed fix for [17960b80db]: Missing libtcl?.?.dll.a in Cygwin 2025-03-17 11:49:44 +00:00
jan.nijtmans d6ee85df0f Make sebres' solution work, so "make dist" works without re-generating */configure with older autoconf 2025-03-16 17:34:44 +00:00
jan.nijtmans af8316cc5a Backout [338a305591] for 8.7 and 9.0: autoconf-2.69 is so common nowadays, we want an errormessage for autoconf versions < 2.69 2025-03-16 16:54:31 +00:00
jan.nijtmans 26ce8d839e Backout [338a305591] for 8.7 and 9.0: autoconf-2.69 is so common nowadays, we want an errormessage for autoconf versions < 2.69 2025-03-16 16:44:08 +00:00
jan.nijtmans 78b33f4c30 Conclusion: it's a little bit to early to require autoconf-2.72, since even ubuntu-24.04 doesn't have it yet. 2025-03-16 12:25:45 +00:00
sebres 2acacf383b merge 9.0 (repair GHA linux/windows builds) 2025-03-15 21:07:01 +00:00
sebres 185cb96e4d merge 8.7 2025-03-15 21:05:04 +00:00
sebres fc90f71dfd make dist: "repair" target dist if required autoconf version is not available (AC_PREREQ too high), simply out a warning and use provided pregenerated configure-script;
fixes GHA linux builds after [cb6436f077eda464], e.g. if checkout unix/configure gets older mtime than unix/configure.ac (or if unix/configure didn't updated, but unix/configure.ac changed so got newer mtime).
2025-03-15 21:04:25 +00:00
sebres fd180fd180 merge 8.6 2025-03-15 20:57:12 +00:00
sebres c15e7227ba fixes failure in GHA (couldn't execute "winget": no such file or directory): since windows-2025 the server got winget, but according to MS, it can only be used on servers with an installed desktop interface, no idea how to check it in GHA programmatically, so simply disable it at the moment (todo: rewrite with better check later) 2025-03-15 20:55:15 +00:00
sebres 71d796a5c8 GHA: update github runner to ubuntu-24.04, windows runner to windows-2025 (ubuntu-20.04 hosted runner image is closing down);
cherry-pick [67d3cf18442fe87a] and [1f4821362a1c6602]
2025-03-15 20:54:17 +00:00
dgp d90e833a22 [e23e40222e] Revise HashString() to expect a Tcl_Size length argument 2025-03-14 18:53:49 +00:00
sebres af978dcdbe merge 9.0 2025-03-14 18:03:06 +00:00
sebres 9d9fd52f83 merge 8.7 2025-03-14 18:02:31 +00:00
sebres bbae6c89e7 missing static 2025-03-14 18:01:42 +00:00
sebres 5092b875a5 merge 9.0 2025-03-14 17:44:20 +00:00
sebres b95d69548d merge 8.7 2025-03-14 17:41:37 +00:00
sebres 2ee73911e6 code deduplication 2025-03-14 17:37:15 +00:00
sebres 8e012944bf padding 2025-03-14 17:31:24 +00:00
jan.nijtmans b17505da03 Update windows runner to windows-2025 2025-03-14 10:37:04 +00:00
jan.nijtmans f99ccf6966 Update github runner to ubuntu-24.04 2025-03-14 10:28:56 +00:00
jan.nijtmans c76bccccd2 Prevent (unix|win)/configure being re-generated with anything else then autoconf-2.72 2025-03-13 21:00:12 +00:00
jan.nijtmans 89b5e7cef4 spacing 2025-03-13 20:54:28 +00:00
sebres cbf5b89611 merge 9.0 2025-03-13 14:16:39 +00:00
sebres b4808ed3bf merge 8.7 2025-03-13 14:16:12 +00:00
sebres f04a802e99 small amend: enforce relative conversion for date units only (all relative time units are similar and affecting relative seconds in UTC) 2025-03-13 14:15:14 +00:00
sebres 48cc5e97b9 merge 9.0 (fix for clock add regression, relative time with TZ over DST-hole, see clock-30.34) 2025-03-12 17:20:00 +00:00
sebres c353d23c77 merge 8.7 (fix for clock add regression, relative time with TZ over DST-hole, see clock-30.34) 2025-03-12 17:18:31 +00:00
sebres 7f5703a2b2 clock: fixes regression for clock add (and potentially free-scan) for relative time units with TZ (by jumps over DST hole with TZ):
relative time tokens must be handled different to relative date tokens (1 day != 24 hours, etc) and shall be applied to UTC seconds, not to local time;
passes test clock-30.34 now.
2025-03-12 17:00:56 +00:00
sebres ce7531136b merge 8.6, new test clock-30.34 will fail in 8.7+ currently (illustrates the regression there) 2025-03-12 16:26:41 +00:00
sebres 7d89f4b4d5 tests/clock.test: new regression test for clock add, covering jump over DST hole with TZ, relative time tokens must be handled different to relative date tokens (1 day != 24 hours, etc) 2025-03-12 16:18:53 +00:00
sebres c8c135cdea tests/clock.test: more regression tests (cherry-picked from 8.7) 2025-03-12 16:16:06 +00:00
jan.nijtmans 59439f2638 Rebase to 9.1 2025-03-12 15:52:20 +00:00
jan.nijtmans 7920d0c42d unneeded type-casts/checks 2025-03-12 15:51:11 +00:00
sebres 55c8d7b0d5 merge 9.0 (fix for [482db1d796540e68]) 2025-03-11 18:37:34 +00:00
sebres 047838c886 merge 8.7: fixes [482db1d796540e68], some minor optimizations and another corner cases for a compiler "fix" (signed-mod operation with potentially negative dividend) 2025-03-11 18:36:00 +00:00
sebres 9ce53dde69 more cases for a compiler "fix" (signed-mod operation with potentially negative dividend) 2025-03-11 18:31:26 +00:00
sebres 1a2e21b8c0 fixes [482db1d796540e68]: local seconds of day shall be always positive, also for negative base (modulo operation may be negative in C) 2025-03-11 17:53:44 +00:00
sebres f136b4bc38 added test coverage for clock add with negative base (bug [482db1d796540e68]) 2025-03-11 17:51:06 +00:00
jan.nijtmans 705fd25081 Rebase to 9.1 2025-03-11 08:30:08 +00:00
jan.nijtmans e80d9c52f3 Update to appleboy/ssh-action@v1.2.2 2025-03-11 08:29:20 +00:00
jan.nijtmans f3fbffdda2 Update to appleboy/ssh-action@v1.2.2 2025-03-11 08:27:08 +00:00
dkf bccc8ed926 This is an experiment with eliminating the issuing of variable-width instructions
Much complexity in the compiler and bytecode engine comes from handling both instructions with width-1 arguments and width-4 arguments. Just issuing the width-4 versions should simplify things quite a bit, at a cost of making the bytecode less dense. This experiment is to look at the consequences of that.
2025-03-09 15:16:24 +00:00
apnadkarni 2e5e60c430 First attempt at obeying character limits when decoding data. 2025-03-09 08:08:23 +00:00
apnadkarni 5e88bf4986 Merge main 2025-03-09 06:31:02 +00:00
apnadkarni 1bc30492f3 Added comment for Bug 73bb42fb3f 2025-03-09 03:40:55 +00:00
sebres 09c280a764 merge 9.0: cmdMZ.test: improve stability of timerate test for quadratic complexity (increase factor for check), also don't run this test on memory-debug builds (may be very time-consuming) 2025-03-07 10:05:06 +00:00
sebres e0f1888fcb merge 8.7 2025-03-07 10:04:26 +00:00
sebres 0adde52f7c merge 8.6 2025-03-07 10:03:07 +00:00
sebres 25689dadcd merge 8.5: cmdMZ.test: improve stability of timerate test for quadratic complexity (increase factor for check), also don't run this test on memory-debug builds (may be very time-consuming) 2025-03-07 10:02:11 +00:00
sebres d465d9bc04 cmdMZ.test: improve stability of timerate test for quadratic complexity (increase factor for check), also don't run this test on memory-debug builds (may be very time-consuming) 2025-03-07 09:58:57 +00:00
sebres a367d7bf77 merge 9.0: amend to [ba68d1e9484a3a92]: rewrite fix of Tcl_GetReturnOptions less invasive (-errorline was always in return options dict previously, shall not be missed now, and reset line to 1 instead of 0, as less unexpected value) 2025-03-06 19:52:11 +00:00
sebres bb98abaec8 merge 8.7 2025-03-06 19:51:03 +00:00
sebres fb1ef867a0 merge 8.6 2025-03-06 19:50:17 +00:00
sebres 02c98f87b8 amend to [ba68d1e9484a3a92]: rewrite fix of Tcl_GetReturnOptions less invasive (-errorline was always in return options dict previously, shall not be missed now, and reset line to 1 instead of 0, as less unexpected value) 2025-03-06 19:47:56 +00:00
sebres 63e2d99c7b merge 9.0 (amend to [ba68d1e9484a3a92] fixed wrong line nummer in Tcl_GetReturnOptions) 2025-03-06 19:32:21 +00:00
sebres 5aa87aebd1 merge 8.7 (amend to [ba68d1e9484a3a92] fixed wrong line nummer in Tcl_GetReturnOptions) 2025-03-06 19:30:56 +00:00
sebres fea606f6c0 merge 8.6 (amend to [ba68d1e9484a3a92] fixed wrong line nummer in Tcl_GetReturnOptions) 2025-03-06 19:29:20 +00:00
sebres 8237f3f44e amend to [ba68d1e9484a3a92]: fixes bug in Tcl_GetReturnOptions - reset errorLine if no errorInfo was initially thrown (before errorInfo becomes updated to error message),
previously caused that incorrect line will be transfered to calling interpreter without errorInfo (or with errorInfo containing only message but no stack);
revert [b756080dc6f8cd05]
2025-03-06 19:22:19 +00:00
dgp 3d8c817d34 merge 9.0 2025-03-06 15:15:53 +00:00
dgp 1ed389aefa merge 8.7 2025-03-06 15:15:29 +00:00
dgp 8c396baf05 merge 8.6 2025-03-06 15:14:42 +00:00
dgp 50137a31f3 Failed tests not updated to new behavior 2025-03-06 15:14:09 +00:00
sebres 6460bb5f29 merge 9.0 2025-03-06 14:46:27 +00:00
sebres 20b5254e4a merge 8.7 2025-03-06 14:44:53 +00:00
sebres 380b74c747 merge 8.6 2025-03-06 14:41:17 +00:00
sebres d08013c398 fixes [ba68d1e9484a3a92]: Tcl_TransferResult appends line-number at end of error stack now (error cases only), only for multi-line code and if it not yet already included by proc etc; so the command interp eval behaves almost similar to command eval now: body line number is included in errorinfo. 2025-03-06 14:31:14 +00:00
sebres 86702f37c2 win/Makefile: fixes "clean" target - remove remaining binaries (inclusive manifests and previous versions by branch switch), however retain tclsh.exe.manifest, that created on configure phase 2025-03-06 14:27:04 +00:00
sebres 1227f90834 merge 9.0 2025-03-06 13:15:16 +00:00
sebres 08edd89738 merge 8.7 (fixes another variant of [73bb42fb3f35cd61] BUFFER_PADDING panic) 2025-03-06 13:02:32 +00:00
sebres 701394b8c3 small amend fixing coverage of [73bb42fb3f35cd61] in 8.7 for windows (8.7 is not utf-8 there) 2025-03-06 12:51:46 +00:00
sebres 09d8462176 fixes another variant of [73bb42fb3f35cd61] (BUFFER_PADDING panic) with more tests; increases coverage for profile strict 2025-03-06 12:50:36 +00:00
sebres d312beb8ca fixes another variant of [73bb42fb3f35cd61] (BUFFER_PADDING panic) with more tests; increases coverage for profile strict 2025-03-06 12:43:04 +00:00
jan.nijtmans 5ffbb345ba Merge 9.1 2025-03-05 17:50:56 +00:00
dgp bb8908d8e2 merge 9.0 2025-03-05 16:00:42 +00:00
dgp 9fae99c5b2 merge 8.7 2025-03-05 15:49:49 +00:00
dgp 69c0f5ab8e The "numTokens" field of Tcl_Token is now type Tcl_Size.
Propagate that change through the code.
2025-03-05 15:30:36 +00:00
dgp 28f976012b merge 9.0 2025-03-05 15:28:42 +00:00
dgp a92bda60e0 merge 8.7 2025-03-05 15:27:54 +00:00
sebres 6aac4d3a09 fixes [712efac3397f9954]: change mistakenly flipped args for Tcl_OpenTcpServerEx() 2025-03-05 13:42:45 +00:00
sebres 93861864c5 new test (PoC): delay between bytes of single multi-byte utf-8 char doesn't cause encoding error with profile strict. 2025-03-05 12:32:26 +00:00
sebres 1893606208 prepare to cherry-pick to 8.7 (no strict by default) 2025-03-05 12:31:32 +00:00
sebres 50d5f9389f proper timeout handling (e is global for after-event) 2025-03-05 11:49:56 +00:00
sebres 37bc406bb1 improve tests stability - read on non-blocking channel may be delayed (to next "beat" in busy notifier) and return with no data, so read blocked;
one test was not need, doing the same than one below, so removed; added more verbosity in unexpected case (if no error happens for whatever reason)
2025-03-05 11:32:40 +00:00
sebres 09fb0b9728 protect against enless loop (if unexpected case), be more verbose if error not happen, etc 2025-03-05 10:40:14 +00:00
apnadkarni adc0c41937 Test case comment clarification 2025-03-05 06:44:06 +00:00
apnadkarni e9d50da9ac Test cases 2025-03-05 06:41:43 +00:00
apnadkarni 590e262108 Possible fix for another BUFFER_PADDING panic 2025-03-05 05:43:25 +00:00
dgp f1057e754d [e23e40222e] Revise HashString() to expect a Tcl_Size length argument 2025-03-04 20:46:16 +00:00
jan.nijtmans 2fad98690c Rebase to 9.1 2025-03-04 16:45:47 +00:00
jan.nijtmans 26260b5c32 Merge 9.0 2025-03-04 16:28:06 +00:00
jan.nijtmans 72f091b26a Update changes.md 2025-03-04 16:27:05 +00:00
sebres 7b30cac890 merge 9.0 / clock.tcl: fixes [2c0f49e26c27847a] - ensure cache remain consistent when deriving from parent (don't merge cached localized formats from parent locale) 2025-03-04 15:51:14 +00:00
sebres f76f4b4a9b merge 8.7 / clock.tcl: fixes [2c0f49e26c27847a] - ensure cache remain consistent when deriving from parent (don't merge cached localized formats from parent locale) 2025-03-04 15:50:23 +00:00
sebres 77b914e2ca clock.tcl: fixes [2c0f49e26c27847a] - ensure cache remain consistent when deriving from parent (don't merge cached localized formats from parent locale) 2025-03-04 15:47:43 +00:00
sebres ccc9b5906b tests/clock.test: added test illustrating bug [2c0f49e26c27847a] - cache becomes inconsist when deriving localized formats (e. g. %x) 2025-03-04 15:45:23 +00:00
jan.nijtmans 549aaddcf8 Merge 9.0 2025-03-03 17:57:40 +00:00
jan.nijtmans 27db97dc55 Update to appleboy/ssh-action@v1.2.1 2025-03-03 17:52:49 +00:00
dkf a67174fc0b merge mark 2025-03-03 09:42:58 +00:00
dkf 3b5aad9449 Fix bug in Tcl_SetWideUIntObj. 2025-03-03 09:41:48 +00:00
dkf b4c1dc69eb Fix bug in Tcl_SetWideUIntObj. 2025-03-03 09:40:44 +00:00
dkf f84bc7b11a Mostly whitespace fixes, but also a bug in Tcl_SetWideUIntObj 2025-03-03 09:33:42 +00:00
jan.nijtmans 4886012f52 Merge 9.1 2025-03-02 20:50:54 +00:00
dkf 0186a636c1 Bunch of whitespace basic fixes. 2025-03-02 15:48:58 +00:00
sebres e47305b70f fixes [ba68d1e9484a3a92]: Tcl_TransferResult would include line-number at end of error stack now (error cases only), only for multi-line code and if it not yet already included by proc etc;
so the command `interp eval` behaves almost similar to command `eval`: body line number is included in errorinfo.
2025-02-27 13:36:22 +00:00
jan.nijtmans 16f41348ef Merge 9.0 2025-02-27 08:32:26 +00:00
jan.nijtmans 0f6e7a1628 Fix [a77029cdea]: MS-VS build system: pckIndex.tcl when building for 9 misses "t" for TCL 8.6 part 2025-02-27 08:26:47 +00:00
dgp 6e14b58b31 merge 9.0 2025-02-26 20:48:39 +00:00
dgp 0bf990c519 More constraint name repair 2025-02-26 20:45:46 +00:00
dgp 1c784876eb merge 8.7 2025-02-26 20:34:48 +00:00
dgp 9eb4cedf83 another one 2025-02-26 20:33:34 +00:00
jan.nijtmans 54cbe03a25 Possible fix for [a77029cdea]: MS-VS build system: pckIndex.tcl when building for 9 misses "t" for TCL 8.6 part 2025-02-26 20:32:55 +00:00
dgp 6188bf5c2d merge 8.7 2025-02-26 20:29:42 +00:00
dgp 404b2f1c2e merge 8.6 2025-02-26 20:26:06 +00:00
dgp 72bb6de9a0 Do not use the character "-" in a test constraint name.
When tcltest sees it, it does not process as a constraint, but converts
to interpretation as a constraint expression.  what you mean to be the
constraint "a-b" is processed as a combination of the constraints "a" and "b".
This makes it impossible to use tcltest command line options to perform
constraint-limited testing on variations of constraint values.
2025-02-26 20:23:23 +00:00
dgp ad9824f321 dup test names 2025-02-26 18:19:26 +00:00
dgp 17b97b0ef1 dup test names 2025-02-26 18:03:32 +00:00
jan.nijtmans a2d2d2eb9b int -> Tcl_Size updates to Utf(3), minor markup update 2025-02-25 09:33:14 +00:00
bch 9fd2056a69 int -> Tcl_Size updates to Utf(3), minor markup update 2025-02-25 05:43:02 +00:00
jan.nijtmans fb7dc91104 update README.md 2025-02-24 22:02:03 +00:00
jan.nijtmans 6df4497ef8 Rebase to 9.1 2025-02-24 21:44:48 +00:00
jan.nijtmans 535f8beb12 Merge-mark 2025-02-24 21:37:57 +00:00
jan.nijtmans 5157125765 Fix [211ac77119]: return manual page has a no longer valid example.
avoid "can't read "::tcltestlib": no such variable" in tests *io-60.1 if load catches a fail for some reason
2025-02-24 21:33:10 +00:00
jan.nijtmans a88d20895a Fix [211ac77119]: return manual page has a no longer valid example.
avoid "can't read "::tcltestlib": no such variable" in tests *io-60.1 if load catches a fail for some reason
2025-02-24 21:30:05 +00:00
jan.nijtmans 42bad14c26 Merge 8.6 2025-02-24 18:13:36 +00:00
jan.nijtmans 4b19e5ab36 Fix [211ac77119]: return manual page has a no longer valid example 2025-02-24 17:52:46 +00:00
sebres 8dcba4c58c avoid "can't read "::tcltestlib": no such variable" in tests *io-60.1 if load catches a fail for some reason 2025-02-24 12:56:22 +00:00
jan.nijtmans 977b895d47 Merge 9.1 2025-02-23 23:21:56 +00:00
jan.nijtmans b5dd092830 Eliminate TCL_MAJOR_VERSION usage. dde -> 1.5a0 2025-02-23 23:06:00 +00:00
jan.nijtmans 91bac7035d * In-code comments reflect what is actually happening - eg:
Tcl_GetRange() does *not* only convert the Obj values to a valid
  Unicode string, it will preserve a byte-array if a byte-array is
  what is passed in.

* s/bytearray/byte-array/, consistent with (eg) Tcl_NewByteArrayObj(3)

* update Tcl_GetRange(3) doc to reflect the byte-array -preserving
  aspect.
2025-02-21 22:55:45 +00:00
bch e13ddd6355 * In-code comments reflect what is actually happening - eg:
Tcl_GetRange() does *not* only convert the Obj values to a valid
  Unicode string, it will preserve a byte-array if a byte-array is
  what is passed in.

* s/bytearray/byte-array/, consistent with (eg) Tcl_NewByteArrayObj(3)

* update Tcl_GetRange(3) doc to reflect the byte-array -preserving
  aspect.
2025-02-21 00:46:13 +00:00
jan.nijtmans bbbb871980 Eliminate TCL_MAJOR_VERSION usage 2025-02-20 21:52:31 +00:00
jan.nijtmans d8d0ab5c6c Merge 9.1. dde -> 1.5a0 2025-02-20 21:36:53 +00:00
jan.nijtmans 20767c8688 Apparently, create-dmg/create-dmg doesn't work yet on Apple silicon 2025-02-20 10:56:40 +00:00
jan.nijtmans 11b2a98a1c TIP #711: New function: Tcl_IsEmpty() 2025-02-20 09:24:57 +00:00
jan.nijtmans 7aac63a15d Rebase to 9.1 2025-02-19 08:37:41 +00:00
jan.nijtmans e2efe9a2f0 Make a start with 9.1 development, as preparation for TIP #711 2025-02-19 08:36:46 +00:00
jan.nijtmans ffb0ee201f Split off "9.0" branch, as preparation for TIP #711 2025-02-19 08:29:41 +00:00
apnadkarni 3d2183ae25 Fix [f5d0e75a49]. Correct tcl::process documentation for non-subprocesses 2025-02-19 05:43:03 +00:00
jan.nijtmans 89213fd786 Be consistent in .VS/.VE tags in documentation: Just mention TIP number, nothing else. 2025-02-18 13:39:06 +00:00
jan.nijtmans 2935e36fe5 Put back "tcl_rcFileName", accidently removed [70302ff935|here].
Remove references to ancient TIP's
2025-02-17 15:03:22 +00:00
jan.nijtmans f8e065e3e2 Remove references to ancient TIP's 2025-02-17 14:44:20 +00:00
jan.nijtmans dffc810e85 No need to mention "TIP 412" any more 2025-02-14 17:45:16 +00:00
jan.nijtmans 8b940282b3 Formatting msgcat.n. Backported from 9.0 2025-02-14 17:10:40 +00:00
apnadkarni a8ec4e794e Fix [0fac6dd541]. Remove duplicated docs for tcl_wordchars etc. from tclvars.n 2025-02-12 15:13:26 +00:00
jan.nijtmans aa6f610364 Don't worry building for Tcl 8.7 any more 2025-02-12 08:26:19 +00:00
jan.nijtmans ebb36f685d Don't worry building for Tcl 8.7 any more 2025-02-12 08:22:48 +00:00
jan.nijtmans cea29dc862 More accurate documentation 2025-02-12 08:01:16 +00:00
jan.nijtmans 8818b6037b Don't worry building for Tcl 8.7 any more 2025-02-11 21:44:15 +00:00
dkf e18563a329 Swap from deprecated build image to current one 2025-02-11 17:11:48 +00:00
apnadkarni e83d3cd490 Bug f5d0e75a49 - correct tcl::process documentation for non-subprocesses 2025-02-11 17:09:12 +00:00
apnadkarni d78d450df4 Remove duplicate documentation of tcl_wordchars and tcl_nonwordchars 2025-02-11 16:43:26 +00:00
sebres ce6cd167ec merge 8.7 2025-02-10 13:07:55 +00:00
sebres be0005dd9e merge 8.6 2025-02-10 13:01:08 +00:00
sebres 78ce804e1e merge 8.5: tcltest: avoid "couldn't read directory" error if no read permission on some child folder of "-testdir" parameter (GetMatchingDirectories will be invoked recursively, so nested glob would not fail with "permission denied") 2025-02-10 12:58:59 +00:00
sebres 082cb4aeb2 tcltest: avoid "couldn't read directory" error if no read permission on some child folder of "-testdir" parameter (GetMatchingDirectories will be invoked recursively, so nested glob would not fail with "permission denied") 2025-02-10 12:57:25 +00:00
sebres 6a94bf652b cherry-pick [9b5c0dbbc296ad67]: tests/all.tcl: don't overwrite argument -testdir (may be supplied in args too) 2025-02-10 12:55:50 +00:00
sebres 1ad46af73b simplify detection of combination for positive and negative options 2025-02-10 10:24:31 +00:00
sebres 6b8af07217 merge trunk (optimized TclSubstOptions, etc); reorganizes options (almost alphanumeric, positive group first); optimizes TclSubstOptions - reducing the branch misprediction, etc 2025-02-08 16:10:46 +00:00
sebres 69d05fcf32 merge 8.7 (optimization of TclSubstOptions) 2025-02-08 15:54:14 +00:00
sebres 89068af09a merge 8.6 (optimization of TclSubstOptions) 2025-02-08 15:52:01 +00:00
sebres 1418964b10 simplify and optimize TclSubstOptions (reducing the branch misprediction etc) 2025-02-08 15:49:29 +00:00
sebres d15b99669e amend to [5a28eecf3519c645]: reset cmpPtr->clientData (it must be not cmpPtr, since cmpPtr->proc is not InvokeObjectCommand anymore) 2025-02-08 13:40:32 +00:00
jan.nijtmans debfe45644 Add some testcases 2025-02-07 13:34:22 +00:00
jan.nijtmans c15c44eab1 Slightly better: less code duplication 2025-02-06 22:54:48 +00:00
jan.nijtmans 9e6350deb8 Change implementation, based on community feedback 2025-02-06 22:21:00 +00:00
apnadkarni 2813cf5bec Throwaway test function for Tcl_IsEmpty 2025-02-06 17:33:11 +00:00
jan.nijtmans 1350860121 Rebase to 9.1 2025-02-06 12:29:27 +00:00
jan.nijtmans d0c300ba82 Rebase to 9.0 2025-02-06 12:27:34 +00:00
jan.nijtmans 3d5fe1e294 Fix [e086622a87]: WINE "env" test failures 2025-02-06 11:34:13 +00:00
jan.nijtmans 8224b50079 Oops 2025-02-06 07:38:37 +00:00
max 7826ad63b8 subst: Fix segfault when mixing positive and negative options and add a test case for it. 2025-02-04 18:06:37 +00:00
max 2fcdb49939 subst.test: Rearrange the new tests for positve options to subst into a single block. 2025-02-04 12:38:32 +00:00
max 50891f3a2d TclSubstOptions: Optimize the positive/negative detection logic (thanks, Rolf). Other minor refinements. 2025-02-04 12:29:44 +00:00
jan.nijtmans 9b70a8339f Rebase to 9.1 2025-02-01 22:47:51 +00:00
jan.nijtmans 66a846e679 Merge-mark 2025-02-01 22:17:41 +00:00
jan.nijtmans 504e828824 Since TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE, those Tcl_InitStubs() variants are now obsolete 2025-02-01 22:06:40 +00:00
jan.nijtmans 10d426a8df Rebase to 9.1 2025-02-01 20:10:45 +00:00
jan.nijtmans a8a66f3538 Merge 9.0 2025-02-01 19:58:09 +00:00
jan.nijtmans 2f3eb31ed0 Merge 8.7 2025-01-31 20:49:10 +00:00
jan.nijtmans 40db447fe6 (cherry-pick): Ticket [73bb42fb3f] Panic "Buffer Underflow, BUFFER_PADDING not enough" due to not checked encoding decode result.
Fix some indenting (spacing) in testcases (all backported from 9.0)
2025-01-31 17:40:17 +00:00
max 6dd788dfc6 Initial reference implementation of TIP 712 (Add "positive" options to the subst command) with code, documentation and tests. 2025-01-31 14:47:13 +00:00
jan.nijtmans 427c1a2475 Merge 9.1 2025-01-31 13:38:55 +00:00
jan.nijtmans 7d636a4ad9 Merge 9.0 2025-01-31 13:38:19 +00:00
jan.nijtmans edc192bf44 Run testcases on MacOS-15 2025-01-31 13:29:25 +00:00
jan.nijtmans 9de9c1d9df Run testcases on MacOS-15 2025-01-31 13:27:26 +00:00
oehhar 27f2debf9a Ticket [73bb42fb3f] Panic "Buffer Underflow, BUFFER_PADDING not enough" due to not checked encoding decode result 2025-01-29 17:49:40 +00:00
jan.nijtmans 0889435433 Test whether all tests work fine on MacOS-15 2025-01-29 13:00:15 +00:00
apnadkarni 24b1ce2b2a Merge 8.7. Fix handle leak introduced by auto_execok fix. Thanks @chw 2025-01-29 05:41:16 +00:00
apnadkarni ff9432560f Merge 8.6. Fix handle leak introduced by exec fix. Thanks @chw 2025-01-29 05:28:42 +00:00
apnadkarni 581f5e0a32 Fix handle leak introduced by auto_execok fix. Thanks @chw 2025-01-29 05:24:06 +00:00
sebres f19d2133a2 merge 8.7: man timerate fix [48a7a56dda844782] clarifying -overhead 2025-01-28 10:41:41 +00:00
sebres 94c0abb5cf merge 8.6: man timerate fix [48a7a56dda844782] clarifying -overhead 2025-01-28 10:41:04 +00:00
sebres 8aa73bae6c merge man timerate fix clarifying -overhead 2025-01-28 10:39:03 +00:00
sebres 7a01b1810c Clarify -overhead measurement 2025-01-28 10:33:07 +00:00
apnadkarni ac2089ef68 Merge mark 2025-01-28 09:35:20 +00:00
apnadkarni 8c752d51c1 Merge fix for [4e2c8bc4a7] - auto_execok missing internal cmd commands 2025-01-28 09:34:12 +00:00
apnadkarni 8691ab31d4 Cherrypick fix for [4e2c8bc4a7] - auto_execok missing internal cmd commands 2025-01-28 09:28:41 +00:00
apnadkarni 4507ba45ea Fix [4e2c8bc4a7] - auto_execok missing internal cmd commands 2025-01-28 09:22:42 +00:00
apnadkarni 1a79859a3b Merge mark 2025-01-28 05:48:47 +00:00
apnadkarni f62e5decb7 Merge fix for [4f0b5767ac]. Exec of App Execution Aliases on Windows 2025-01-28 05:43:47 +00:00
apnadkarni 5a9b2f09dd Cherry pick fix for [4f0b5767ac]. Exec of App Execution Aliases on Windows 2025-01-28 05:24:52 +00:00
apnadkarni f92a687b2b Fix [4f0b5767ac]. Exec of App Execution Aliases on Windows 2025-01-28 04:56:38 +00:00
apnadkarni 23031d29f1 Fix auto_exec test for Unix even in presence of win constraint 2025-01-27 16:59:55 +00:00
jan.nijtmans 6d954b2130 Add documentation 2025-01-27 15:55:46 +00:00
oehhar 5edd595ea2 Ticket [27fa20249d]: htmlhelp: ignore pckgs folders without configure.in/ac 2025-01-27 14:24:36 +00:00
oehhar 37bddb4f48 Ticket [27fa20249d]: htmlhelp: ignore pckgs folders without configure.in/ac 2025-01-27 14:17:46 +00:00
oehhar 6f2ff71243 Ticket [27fa20249d]: guard html generation against bogus package folders. 2025-01-27 11:33:02 +00:00
apnadkarni fbe7addb0d Bug [4e2c8bc4a7]. Missing auto_execok cmd builtins 2025-01-26 08:03:09 +00:00
apnadkarni 84347866b7 Added test for [4f0b5767ac]. 2025-01-26 04:39:19 +00:00
apnadkarni b1129d299b Proposed fix [4f0b5767ac]. exec of App Execution Alias 2025-01-26 04:24:51 +00:00
jan.nijtmans e0d39ceda9 Fix comment 2025-01-25 11:18:22 +00:00
dkf 3c0d56311c Turn some defines into enums, plus other minor cleanup in the win console code 2025-01-24 10:06:07 +00:00
sebres 07c59c3a45 merge 8.7 (timerate stability fix: no hang by iterations with quadratic complexity, better threshold calculation agorithm, predicting duration of next iterations) 2025-01-23 12:38:16 +00:00
sebres 4f15fedbbf merge 8.6 (timerate stability fix: no hang by iterations with quadratic complexity, better threshold calculation agorithm, predicting duration of next iterations) 2025-01-23 12:36:21 +00:00
sebres 7399b043c5 TclWideMUInt may be signed on some platforms, back to WIDE_MAX for default max count (9e18 is anyway large enough) 2025-01-23 12:20:27 +00:00
sebres d29e1685e7 TclWideMUInt may be signed on some platforms, back to WIDE_MAX for default max count (9e18 is anyway large enough) 2025-01-23 12:13:18 +00:00
sebres bde3752481 amend, missing NL 2025-01-22 20:03:46 +00:00
sebres 30d075ceec amend, add missing NL 2025-01-22 20:02:44 +00:00
sebres 28d27be371 merge timerate fix: avoids drastic growth of execution time on iteration with quadratic complexity, O(n**2) etc 2025-01-22 17:34:50 +00:00
sebres 56e64d62c1 fixes timerate command (avoids drastic growth of execution time on iteration with quadratic complexity, O(n**2) etc) 2025-01-22 17:24:29 +00:00
sebres 733cb16990 timerate: added test illustrating drastic growth of execution time on iteration with quadratic complexity 2025-01-22 17:23:14 +00:00
jan.nijtmans 9683ab93af New function Tcl_IsEmpty() 2025-01-22 12:52:47 +00:00
jan.nijtmans 140e47e30d Merge 9.1 2025-01-20 20:19:07 +00:00
jan.nijtmans 4a148de8eb Merge 9.0 2025-01-20 20:16:56 +00:00
jan.nijtmans bb886227e1 rsync-deployments -> 7.0.2 2025-01-20 20:12:54 +00:00
sebres 5b7438113a merge 8.7 2025-01-20 17:07:31 +00:00
sebres 1988dff766 merge 8.6 2025-01-20 17:06:38 +00:00
sebres 42809ce814 fixes constraint case-sensitivity (mistakenly changed in spelling correction commit [ee3df4e647593609], please stop... well, never mind) 2025-01-20 17:05:42 +00:00
jan.nijtmans aebcfe4479 tzdata updated to Olson's tzdata2025a. Update changes.md 2025-01-19 16:37:34 +00:00
jan.nijtmans 351e2414cd tzdata updated to Olson's tzdata2025a 2025-01-19 16:18:44 +00:00
jan.nijtmans b4f97857d1 tzdata updated to Olson's tzdata2025a 2025-01-19 15:02:45 +00:00
jan.nijtmans 7efbca8bb1 Add dummy TclpLoadMemoryGetBuffer/TclpLoadMemory for Windows and UNIX, so compiling with TCL_LOAD_FROM_MEMORY succeeds (but fallbacks normally at runtime) 2025-01-17 12:31:05 +00:00
jan.nijtmans eb701e1cec Add dummy TclpLoadMemoryGetBuffer/TclpLoadMemory for Windows and UNIX, so compiling with TCL_LOAD_FROM_MEMORY succeeds (but fallbacks normally at runtime) 2025-01-16 09:16:53 +00:00
jan.nijtmans 1345a76e91 change (internal) TclpLoadMemory() signature, backported from 9.0.
Install headers before documentation. If documentation copying (which is slow) is aborted, it doesn't affect development work
2025-01-15 17:19:51 +00:00
oehhar 5d3bc2250f Add test cases 2025-01-15 16:59:20 +00:00
oehhar 3c708986bc Bug 73bb42fb3f: check also 2nd encoding conversion and set error as in the one above. This is effective for the bug. 2025-01-15 12:39:16 +00:00
jan.nijtmans 2fe25338c3 Make Tcl_SetResult usable in tclTest.c, even if TCL_NO_DEPRECATED is defined 2025-01-14 14:16:54 +00:00
jan.nijtmans 74c0e694b2 Undo previous commit, it didn't really help.
Fix tests for Tcl_UtfNext/Tcl_UtfPrev, which were always expected in UTF-32 mode.
Make Tcl_SetResult() usable with TCL_NO_DEPRECATED too, otherwise it leads to a test crash
Always install header-files before documentation: If documentation copying takes too long it can be aborted.
2025-01-14 12:11:39 +00:00
jan.nijtmans e7a7b152ee #ifdef TCL_NO_DEPRECATED -> #ifndef TCL_NO_DEPRECATED 2025-01-13 10:23:33 +00:00
jan.nijtmans bef6700842 Re-enable Tcl_SavedResult testcases. They won't work if TCL_NO_DEPRECATED is set. 2025-01-13 09:37:34 +00:00
jan.nijtmans b5270c6e6c Fix [70f3b23cad]. Doc fix only 2025-01-12 18:10:33 +00:00
jan.nijtmans 384c7ddf41 Fix [70f3b23cad]. Doc fix only 2025-01-12 18:04:33 +00:00
jan.nijtmans 94d4244ef4 Fix [70f3b23cad]. Doc fix only 2025-01-12 17:51:40 +00:00
jan.nijtmans 89e3ee4ed2 In dltest/pkg*.c, prevent calling deprecate API as well 2025-01-12 17:35:02 +00:00
jan.nijtmans 2fd4839585 Handle TCL_NO_DEPRECATED in test code: Don't try to use deprecated API 2025-01-12 13:57:26 +00:00
jan.nijtmans 35dfc3edbc Fix ifndef -> ifdef in previous commit 2025-01-11 21:22:45 +00:00
jan.nijtmans 383d18a629 Merge-mark 2025-01-10 21:37:12 +00:00
jan.nijtmans ab6140e2bd Tcl_GetUnicode() et all (from the UTF16 compatibility layer) should be handled by TCL_NO_DEPRECATED as well, if TCL_UTF_MAX=3 2025-01-10 21:28:27 +00:00
jan.nijtmans 7ab0b63abd Tcl_MakeSafe() should be handled by TCL_NO_DEPRECATED as well 2025-01-10 20:41:49 +00:00
jan.nijtmans 681332c022 Tcl_GetAlias() should be handled by TCL_NO_DEPRECATED as well 2025-01-10 20:26:19 +00:00
jan.nijtmans b6772755e7 Rebase to 9.0 2025-01-10 14:02:45 +00:00
jan.nijtmans bee9aff936 Another attempt to make it clear, without too much bloat 2025-01-10 13:59:22 +00:00
jan.nijtmans f4324ec6f3 Merge 9.1 2025-01-08 15:24:23 +00:00
jan.nijtmans 8decb3dc99 Merge 9.0. registry -> 1.4a0 (breaking compilation on Windows XP) 2025-01-08 15:23:43 +00:00
jan.nijtmans 2e0a2ec293 In --with-tcl8 mode, only typedef Tcl_Size when Tcl_Size is not #defined already 2025-01-08 14:07:34 +00:00
jan.nijtmans 56b2bd3012 Only typedef Tcl_Size when Tcl_Size is not #defined. Spacing changes (backported from 8.7) 2025-01-08 13:57:57 +00:00
jan.nijtmans 9b892cb7be (cherry-pick): Simplification for [d58e315172]
version -> 8.6.17 for futher development
2025-01-08 11:28:36 +00:00
jan.nijtmans 97c05038f1 Put back TCL_NO_DEPRECATED builds 2025-01-08 10:20:12 +00:00
jan.nijtmans 5f972cafbd Merge-mark 2025-01-08 09:21:47 +00:00
jan.nijtmans a5b5e34026 Superflouous TCL_NO_DEPRECATED usage (meant for TIP #626) 2025-01-08 09:16:18 +00:00
jan.nijtmans 89d6a3c475 (cherry-pick): Simplification for [d58e315172] 2025-01-08 08:36:24 +00:00
jan.nijtmans 1235d67d76 Simplification for [d58e315172] 2025-01-07 15:42:15 +00:00
jan.nijtmans d7b7046db2 Merge 9.1 2025-01-07 14:25:06 +00:00
jan.nijtmans 2cceaefd62 Don't build dltest for Tcl 8.x any more 2025-01-07 14:22:35 +00:00
jan.nijtmans c7678dac95 Merge 9.1 2025-01-07 13:08:18 +00:00
jan.nijtmans 59f617f48f Few more 9.0 -> 9.1 changes 2025-01-07 13:07:16 +00:00
jan.nijtmans d4ecd0d697 Rebase 2025-01-07 13:01:02 +00:00
jan.nijtmans eee1b9e7a3 Make a start for Tcl 9.1. Nothing more than version bump, and removing unnecessary compatibility (with 8.7) stuff. 2025-01-07 12:39:34 +00:00
jan.nijtmans 1bd5af9ec7 Rebase to 9.0 2025-01-07 10:09:26 +00:00
jan.nijtmans 380ef99d03 Fix [fc3509]: Better error-message than "interpreter uses an incompatible stubs mechanism" 2025-01-07 10:06:37 +00:00
jan.nijtmans 3de5fedc12 Fix [fc35093ce]: Better error-message than "interpreter uses an incompatible stubs mechanism" 2025-01-07 09:53:00 +00:00
jan.nijtmans e4949db666 Handle 9.0-compiled extension running in 8.x as well 2025-01-07 09:19:59 +00:00
jan.nijtmans 551a51944b Merge 8.6 2025-01-06 22:58:48 +00:00
jan.nijtmans a0ba62bd37 Merge-mark 2025-01-06 22:06:34 +00:00
jan.nijtmans 8183691a4f This would be my advise. Using TCL_VERSION in Tcl_InitStubs() is a bad idea (IMHO) 2025-01-06 21:15:03 +00:00
jan.nijtmans 571b1d5013 Fix [fc35093ce] for Tcl 8.6: Better error-message than "interpreter uses an incompatible stubs mechanism". Minor doc fix. 2025-01-06 17:10:30 +00:00
jan.nijtmans a0a8e2f294 oops 2025-01-05 20:41:05 +00:00
jan.nijtmans 997d70e625 Simplification for [d58e315172] 2025-01-05 20:38:40 +00:00
jan.nijtmans 467e8e53be Tcl_UniChar -> int in tcl.decls. This gives a correct compiler-warning when Tcl_GetUnicode() usage doesn't match TCL_UTF_MAX, as in Testutf16stringObjCmd() 2025-01-05 17:41:45 +00:00
jan.nijtmans 690648003f More stub-related fixes: export TclGetAliasObj and TclGetUnicodeFromObj, for better (binary) compatibility with Tcl 9.0. Remove unneeded '_' 2025-01-04 22:24:14 +00:00
jan.nijtmans df5a92a15b Fix compilation warning 2025-01-04 13:06:15 +00:00
jan.nijtmans 8648d41bfd Proposed fix for [fc35093ce]: Better error-message than "interpreter uses an incompatible stubs mechanism" 2025-01-03 15:47:14 +00:00
jan.nijtmans e20406d838 Document underlying Tcl_InitStubs() behavior, when circumventing the macro in tcl.h 2025-01-03 14:48:06 +00:00
jan.nijtmans 535ac7d037 Rebase to 9.0 2025-01-03 13:51:52 +00:00
jan.nijtmans ed91fb41b9 Fix [afdb56e633]: Tcl_MethodType2 not documented 2025-01-03 13:51:17 +00:00
jan.nijtmans 62907b8662 Merge 9.0 2025-01-03 13:45:27 +00:00
jan.nijtmans 388084f2b2 Add 2 more internal tclOO stub entries: TclOOMakeProcInstanceMethod2 and TclOOMakeProcMethod2 2025-01-03 13:38:55 +00:00
jan.nijtmans 0c41a44c78 (Cherry-pick): [2bc08cd2e6] - document TCL_{LL,SIZE}_MODIFIER, Tcl_Size, TCL_SIZE_MAX 2025-01-03 13:28:41 +00:00
jan.nijtmans a7ef4fbf40 Make room for 2 more (internal) stub entries: TclOOMakeProcInstanceMethod2 and TclOOMakeProcMethod2.
Fill in more stub entries, for better binary compatibility with 9.0
2025-01-03 13:23:28 +00:00
apnadkarni 57a7e71b80 [2bc08cd2e6] - document TCL_{LL,SIZE}_MODIFIER, Tcl_Size, TCL_SIZE_MAX 2025-01-03 09:59:18 +00:00
jan.nijtmans 7e395e56cc Missing #ifndef TCL_NO_DEPRECATED 2025-01-02 21:39:12 +00:00
jan.nijtmans e81ec76796 Merge 9.0. Add 2 more internal stub entries 2025-01-02 21:35:57 +00:00
jan.nijtmans 8c45746c94 Fix [d58e31517203396e]: configure --enable-64bit=aarch64 broken 2025-01-02 17:35:30 +00:00
jan.nijtmans 66dcee7e9b Fix [d58e31517203396e]: configure --enable-64bit=aarch64 broken 2025-01-02 17:31:13 +00:00
jan.nijtmans 2b15d0b432 Make --enable-64bit=arm64 and --enable-64bit=aarch64 synonymes 2025-01-02 17:24:03 +00:00
sebres 048d824a9f win/configure: check whether cpuid-header natively supported for the target architecture (possible fix for [d58e31517203396e]) 2025-01-02 16:37:48 +00:00
jan.nijtmans 7321e36340 (cherry-pick): Remove dead code in tclLoadDyld.c 2025-01-02 15:56:01 +00:00
jan.nijtmans 9727cd07c7 Proposed fix for [afdb56e633]: Tcl_MethodType2 not documented 2025-01-02 15:39:14 +00:00
jan.nijtmans 690eacc331 Remove dead code in tclLoadDyld.c 2025-01-02 15:22:36 +00:00
jan.nijtmans 1d915dcdb9 Merge 9.0 2025-01-01 20:54:49 +00:00
jan.nijtmans 40fdc12b92 Merge-mark 2025-01-01 20:41:26 +00:00
jan.nijtmans 3a7feaf9e2 Remove EXEC flag from koi8-t.enc 2025-01-01 20:39:58 +00:00
jan.nijtmans 0824b9a889 isDigit -> ISDIGIT (simplification, backported from 8.7/9.0) 2025-01-01 20:37:05 +00:00
apnadkarni 39c028b8c3 Document TCL_SIZE_MAX 2024-12-31 01:18:08 +00:00
apnadkarni 3ec5992bb0 [2bc08cd2e6] Document ObjPrintf size modifiers 2024-12-30 17:10:37 +00:00
sebres 92fd1eb20d merge 8.7 (windows only: obtain cpuid data with clang/gcc) 2024-12-29 22:24:11 +00:00
sebres 6eb30e7e26 merge 8.6 (windows only: obtain cpuid data with clang/gcc) 2024-12-29 22:23:12 +00:00
sebres b5e13d0e05 windows only: better way to get cpuid data with internal facility of clang/gcc (also silence warning "<mm3dnow.h> header is deprecated", including <intrin.h>) 2024-12-29 22:19:40 +00:00
sebres 530640f82e merge 8.7 (clang/gcc: silence Wunused-but-set-variable in generated tclDate) 2024-12-29 16:59:19 +00:00
sebres 88b423b907 merge 8.6 (clang/gcc: silence Wunused-but-set-variable in generated tclDate) 2024-12-29 16:57:49 +00:00
sebres f0a45becea silence warning "variable set but not used [-Wunused-but-set-variable]" (once the tclDate gets regenerated with bison/yacc) 2024-12-29 16:54:07 +00:00
sebres 77aaf56b88 merge point 2024-12-29 16:24:53 +00:00
sebres 67d5f1ae4d missing semicolon, fixes MacOS-clang build 2024-12-29 16:23:40 +00:00
sebres f7dcfa1d7f merge 8.7 2024-12-28 14:46:17 +00:00
sebres 89424195ea amend (negative and odd number by odd power) 2024-12-28 14:45:59 +00:00
sebres e7a8b88b9e merge 8.7 2024-12-28 14:40:56 +00:00
sebres a33af8948e better coverage for FP-class "subnormal" 2024-12-28 14:40:15 +00:00
sebres 69ed0cf10d merge 8.7 2024-12-28 14:01:47 +00:00
sebres 477921f598 small speed-up for FP classification of int (simple cast wide to double) 2024-12-28 14:00:58 +00:00
sebres c96fff9fc1 amend to [98006f00ac471be5]: fixes MSVC build (values of FP_* are compiler/implementation specific, e. g. for MSVC FP_NORMAL is equal -1) 2024-12-28 13:58:53 +00:00
sebres 43387ca512 merge 8.7: amend to [98006f00ac471be5] - simplification and deduplication, better tests 2024-12-28 01:00:56 +00:00
sebres 4b9c302d6f expr.test: amend to [98006f00ac471be5] - tests simplification and deduplication, big matrix for isunordered removed (unneeded), more input cases to cover FP classification (wide, bignum, etc) 2024-12-28 00:58:28 +00:00
sebres 67688d1409 amend to [98006f00ac471be5]: code simplification and deduplication 2024-12-27 23:23:47 +00:00
sebres 84dc0b4d3e merge 8.7 (fixes [98006f00ac471be5]) 2024-12-27 21:20:12 +00:00
sebres 722f064755 amend to fix [98006f00ac471be5]: typo 2024-12-27 21:19:15 +00:00
sebres 3fe703f38e fixes [98006f00ac471be5] tcl::mathfunc::isunordered mistakenly considered non-double numbers (e.g. int) as double 2024-12-27 21:17:08 +00:00
sebres d64f4020e4 tcl::mathfunc::isunordered: extended test illustrating [98006f00ac471be5] 2024-12-27 21:15:19 +00:00
sebres df27c0e0f7 merge 8.7 2024-12-26 18:42:23 +00:00
sebres f7c773ca22 merge 8.6 2024-12-26 18:41:31 +00:00
sebres 93dec99387 small amend (unsaved change): cover epoch change (recompile in child) for main interp too 2024-12-26 18:40:43 +00:00
sebres 0285ae30ce merge 8.7 (fix for [67d5f75c36cbada6]) 2024-12-26 18:30:09 +00:00
sebres 9331322775 rewrite TclGetLambdaFromObj a bit (more similar to 8.6th code) 2024-12-26 18:28:03 +00:00
sebres f56363c66e integrate bug-67d5f75c36, fix for [67d5f75c36cbada6] 2024-12-26 18:24:15 +00:00
sebres 4368676d52 merge 8.6 2024-12-26 18:20:23 +00:00
sebres 813fdf982d test coverage for [67d5f75c36cbada6]: same lambda on different interpreters 2024-12-26 18:18:11 +00:00
sebres fe463d9b86 tests/all.tcl: simplify retrieving of test folder, don't overwrite argument -testdir (may be supplied in args too) 2024-12-26 18:12:39 +00:00
jan.nijtmans d72857f7bc Disable TCL_OO_METHOD_VERSION_CURRENT if TCL_NO_DEPRECATED=1 2024-12-26 18:00:51 +00:00
sebres c1120ca16f merge point (no functional changes, only comments) 2024-12-26 15:56:52 +00:00
sebres 6b90b91ef7 cherry-pick sebres-arith-series-rework: fixes several bugs and UB (closes [d2a3c5f80bf47362]), improved numerical stability of FP-series, optimizations and improved performance;
adjust code to be more similar to tcl9.0, optimized in/ni operators for large arith-series
2024-12-26 15:51:28 +00:00
sebres 324267e20a lseq.test: unneeded constraint 2024-12-26 15:29:08 +00:00
sebres 44d99c8b3b merge sebres-arith-series-rework: fixes several bugs and UB (closes [d2a3c5f80bf47362]), improved numerical stability of FP-series, optimizations and improved performance 2024-12-26 13:52:17 +00:00
sebres 54330e9a78 fix calculation of max precision of the series for E notation, optimize it a bit (do it once, use original given objects, that mostly have a string representations), so speed-up it a bit + code review and deduplication 2024-12-23 18:08:35 +00:00
jan.nijtmans e0c0f375ee Disable TclGetObjInterpProc() if TCL_NO_DEPRECATED=1. Merge 9.0 2024-12-23 17:31:44 +00:00
dkf 0f1f06bd3d merge mark 2024-12-23 13:27:11 +00:00
dkf 45c9e7412a Add missing NULLs 2024-12-23 12:06:39 +00:00
dkf b782b3c33c Shorten generation of TCL OO error codes 2024-12-23 11:59:44 +00:00
jan.nijtmans a6b3510264 Merge 9.0 2024-12-23 11:02:38 +00:00
sebres 5a3b8cc1ae clean up unused code 2024-12-22 17:54:53 +00:00
sebres 93d01cba13 prohibit NaN in the arith-series, so it behaves exactly like expr-command (e. g. like expr {Inf - Inf} it'd generate "domain error: argument not in valid range" now) 2024-12-22 17:50:34 +00:00
sebres 79e974becf improve numerical stability by length calculation for distance/step exceeding wide-ints bounds,
use volatile for more deterministic cross-platform FP arithmetics (e. g. to avoid wrong optimization and divergent results by different compilers/platforms)
2024-12-22 17:10:40 +00:00
sebres 4043229e68 more tests, cover lrange/lreverse for unshared/shared series-objects 2024-12-22 14:44:25 +00:00
sebres b50dda9942 amend with better test title and explaining comment 2024-12-22 14:23:18 +00:00
sebres 1919639eca make test platform/compiler independent: the result of the addition of Inf and -Inf may be either -NaN or NaN 2024-12-22 13:53:33 +00:00
sebres 1600220f3f silence implicit conversion warnings by clang build 2024-12-22 13:32:53 +00:00
sebres 1aef46facd avoid implicit conversion of double length to bignum by NaN/Inf 2024-12-21 22:21:01 +00:00
sebres f298dcd552 lseq with double args: improve numerical stability by calculation of length (use wide arithmetic instead of IEEE-754 when distance and step do not exceed wide-integers) 2024-12-21 21:56:26 +00:00
jan.nijtmans c2171b3f7a version -> 9.0.2 2024-12-21 20:58:45 +00:00
sebres 04a6de903d furnish arith-series internal representation with refCount, improve duplication 2024-12-21 19:45:51 +00:00
sebres 0ec91cb282 arith-series doesn't need end (it may be incorrect, since proper value is calculated as start + (len-1) * step, improve and simplify lrange and lreverse (don't use interim objects as arguments for creation and inplace replacement) 2024-12-21 19:42:16 +00:00
sebres 97c40bf8fa improve UpdateStringOfArithSeries (panic by overflow, no interim objects by generation of string representation of elements, same algorithm for their creation as by the calculation of the bytelength, better performance) 2024-12-21 19:32:47 +00:00
sebres 26dbb3839c improve creation of arith-series object, more checks, Inf/NaN, etc 2024-12-21 19:24:36 +00:00
sebres 7f4d1caf3e don't swallow error message (usage) on wrong args 2024-12-21 19:11:46 +00:00
sebres 59fab4608d added test cases illustrating several inconsistencies and bugs (hopefully also the result of UB [d2a3c5f80bf47362]) 2024-12-21 19:10:10 +00:00
jan.nijtmans ea032f8416 lf -> crlf in vctool.bat 2024-12-21 18:21:03 +00:00
dgp e746a360ef merge release 2024-12-21 15:53:39 +00:00
dkf cb18374b3b Remove excess blank lines 2024-12-21 12:20:38 +00:00
dgp 6230a12b3b updated changes.md for release. 2024-12-19 16:48:09 +00:00
dgp 4f90bc1b6a merge trunk 2024-12-19 15:18:10 +00:00
jan.nijtmans f3a1213dd2 Don't shorten "info locals" in testcases. 2024-12-18 13:20:16 +00:00
jan.nijtmans 25494d3c04 Merge 8.6 2024-12-18 12:33:21 +00:00
jan.nijtmans 8a40c50095 Don't shorten "info locals" in testcases. 2024-12-18 12:07:11 +00:00
dkf ee913241e1 Introduce a typedef for greater sanity 2024-12-16 17:13:00 +00:00
apnadkarni 14539591b5 Add TIP 707 to changes.md 2024-12-16 16:27:17 +00:00
dkf 539f8d1181 Make access to RegDeleteKeyExW less awful with a typedef 2024-12-16 16:02:48 +00:00
dkf 8c2b203fa5 Convert internal flags to an enum 2024-12-16 15:55:52 +00:00
oehhar 4e6acfdfcd Add Tcl_InitStubs macro information. Update man page links. 2024-12-16 14:16:12 +00:00
jan.nijtmans 028d737c9b Merge-mark 2024-12-16 13:33:43 +00:00
oehhar d3080efe1e Ticket [70f3b23cad]: propose new doc wording for requirement strings 2024-12-16 11:50:32 +00:00
jan.nijtmans 3381979087 Remove experimental (and untested) code related to BREAK_NAMESPACE_COMPAT 2024-12-16 11:12:44 +00:00
jan.nijtmans 1232c6e821 Fix [63449c0514]: [namespace children] doesn't match non-glob patterns below the global namespace. 2024-12-16 09:59:12 +00:00
jan.nijtmans 1bac432efb Remove experimental (and untested) code related to BREAK_NAMESPACE_COMPAT. Backport some layout changes 2024-12-16 09:36:17 +00:00
jan.nijtmans 9ec2d22b9e Merge-mark 2024-12-15 19:02:38 +00:00
jan.nijtmans 8f10eaca91 (backport): Fix [63449c0514]: [namespace children] doesn't match non-glob patterns below the global namespace.
Also backport some formatting changes
2024-12-15 18:27:44 +00:00
oehhar 01b4c65676 Add explanation for fix for ticket [63449c0514] 2024-12-15 17:57:10 +00:00
dkf 5d17abf924 Convert collection of related constants to an enum 2024-12-15 15:03:26 +00:00
jan.nijtmans af722facee Fix [63449c0514]: [namespace children] doesn't match non-glob patterns below the global namespace.
Candidate for inclusion in Tcl 9.0.1 (to be discussed)
2024-12-14 23:38:22 +00:00
dkf aa0df64ab3 Turn constants into an enum 2024-12-13 15:23:02 +00:00
jan.nijtmans e6ebc0b287 Proposed fix for [63449c0514]: [namespace children] doesn't match non-glob patterns below the global namespace 2024-12-13 14:53:09 +00:00
dkf e108eab9c9 taming constants with enums in the zipfs code; it's still ugly but it's not so awful as it was (and a better approach requires changes in Clang and MSVC) 2024-12-13 13:54:07 +00:00
jan.nijtmans bd947a8040 Fix [c4f365470e]: Size modifiers j, q, z, t not implemented. Update changes.md 2024-12-13 10:18:58 +00:00
jan.nijtmans c3d210ed20 Fix [c4f365470e]: Size modifiers j, q, z, t not implemented 2024-12-13 09:59:57 +00:00
dkf 5473a7ca59 Convert defines to an enum. 2024-12-13 09:23:42 +00:00
jan.nijtmans a11c69a1e2 Add simple testcase 2024-12-13 09:10:18 +00:00
apnadkarni 504ab77794 Merge 8.7 - Fix example. http::config, not http::configure 2024-12-13 05:40:18 +00:00
apnadkarni 473c1fce0f Fix example. http::config, not http::configure 2024-12-13 05:37:23 +00:00
dkf 74ac01ae65 Convert masks to an enum 2024-12-12 20:31:48 +00:00
dkf a00fce91a0 More conversion of enumerations to enums 2024-12-12 20:21:17 +00:00
dgp d4dc3d6c97 Open release branch 2024-12-12 18:14:38 +00:00
jan.nijtmans a23bd8d01a Make sure tclUuid.h doesn't end up in "make dist" 2024-12-12 14:40:19 +00:00
jan.nijtmans 6208d8739c Make sure tclUuid.h doesn't end up in "make dist" 2024-12-12 14:39:04 +00:00
dgp 0b582c4f39 merge 8.7 2024-12-12 14:38:25 +00:00
dgp 3a13d66289 dup test names 2024-12-12 14:37:57 +00:00
jan.nijtmans 79a6447c89 Proposed fix for [c4f365470e]: Size modifiers j, q, z, t not implemented 2024-12-12 14:15:11 +00:00
jan.nijtmans 4e3f48519d Plug memory leak.
test hygiene -- avoid fragility in makeFile / removeFile
2024-12-11 20:59:55 +00:00
jan.nijtmans bd2bad16f1 Plug memory leak.
test hygiene -- avoid fragility in makeFile / removeFile
2024-12-11 20:56:17 +00:00
jan.nijtmans b60a4fb6bd Merge release 2024-12-11 20:50:27 +00:00
jan.nijtmans 05d12fda27 TIP #707 follow-up: for tclDTrace.d too 2024-12-10 09:42:45 +00:00
jan.nijtmans b3c5371ab3 TIP #707: Add ptrAndSize to dtrace as well. 2024-12-10 09:40:29 +00:00
jan.nijtmans a0f932b397 (cherry-pick )Fix ungrammatical doubling of words in comments 2024-12-10 09:38:43 +00:00
apnadkarni ac03f710be Merge 8.7 - TIP 707 - add ptrAndSize field to Tcl_Obj 2024-12-10 03:06:49 +00:00
apnadkarni dc6def0731 TIP 707 - add ptrAndSize field to Tcl_Obj 2024-12-10 03:01:53 +00:00
dgp 874e4fe426 merge 8.6 & update release date 2024-12-09 17:49:34 +00:00
apnadkarni efb8f7efe7 Merge 8.7. Fix [1dc7f3e5f1] - filesystem-1.30.3 should normalize before comparing. Tx @gahr 2024-12-09 10:47:06 +00:00
apnadkarni 20c9bd3869 Merge 8.6. Fix [1dc7f3e5f1] - filesystem-1.30.3 should normalize before comparing. Tx @gahr 2024-12-09 10:38:23 +00:00
apnadkarni fc27dcdd36 Fix [1dc7f3e5f1] - filesystem-1.30.3 should normalize before comparing. Tx @gahr 2024-12-09 10:32:28 +00:00
jan.nijtmans 4aa64d58fe Fix [c7e4c4586d]: TIP #609 - required Tcl_ThreadAlert() skipped with nested event loop 2024-12-07 23:52:27 +00:00
jan.nijtmans 15679a7d92 Fix [https://core.tcl-lang.org/thread/tktview/9e69e2c602|9e69e2c602]: Problem with TIP#609 2024-12-07 13:15:11 +00:00
dgp ce1b0d9445 update changes 2024-12-06 17:54:38 +00:00
dgp 6e11756aaf merge 8.6 2024-12-06 17:46:55 +00:00
jan.nijtmans c6990d0e97 Proposed fix for [https://core.tcl-lang.org/thread/tktview/9e69e2c602|9e69e2c602]: Problem with TIP#609 2024-12-06 10:39:21 +00:00
jan.nijtmans aebac01b5a Fix "make dist". $(DISTDIR) part was missing 2024-12-06 10:04:11 +00:00
jan.nijtmans efd84f95db (cherry-pick): Let enums be enums 2024-12-06 09:29:07 +00:00
jan.nijtmans e55c084127 Fix "make dist". $(DISTDIR) part was missing 2024-12-06 09:19:44 +00:00
dkf 368b0154c2 Let enums be enums 2024-12-06 09:05:50 +00:00
sebres 6ad36cb634 merge 8.7 2024-12-05 19:27:30 +00:00
sebres e0f42eedcb amend: remove extra spaces appearing by resolving merge conflicts 2024-12-05 19:26:48 +00:00
sebres b3bccb4a54 merge 8.7 (fix SF [0b809cd3fc8b6e5e], conflicts resolved) 2024-12-05 19:05:15 +00:00
sebres 767e37a2fe merge 8.6 (fix SF [0b809cd3fc8b6e5e], conflicts resolved) 2024-12-05 18:28:00 +00:00
sebres 8ae7b3358d small amend to [0b809cd3fc8b6e5e]: follow the same logic for constructor/destructor error handlers 2024-12-05 16:34:33 +00:00
sebres 5418d02bbc fixed segfault [0b809cd3fc8b6e5e] by touching in coro referenced OO-method of deleted OO-instance (class/object);
there is no cross reference between methods and instances (probably to avoid cyclic refs), so reset the instance in method if class or object gets deleted in case the method will remain due to its ref-counter (referenced in coro)
2024-12-05 15:57:59 +00:00
jan.nijtmans 2e4425b5b4 Match Tcl_Free()'s argument type 2024-12-05 13:53:36 +00:00
jan.nijtmans 0bb0fb611e This could give a (C++) compiler warning 2024-12-05 13:47:34 +00:00
jan.nijtmans 33e0c43f7b Fix some EXEC flags (in "make dist" too) 2024-12-05 11:50:07 +00:00
jan.nijtmans 1af9b219b2 Fix some EXEC flags (in "make dist" too) 2024-12-05 11:41:01 +00:00
jan.nijtmans 1a821b3d0d Fix [aaa84fbbc5]: zipfs info on mountpoint of executable returns zero offset in field 4 2024-12-05 10:07:35 +00:00
jan.nijtmans f0dfaa3a9e Fix [aaa84fbbc5]: zipfs info on mountpoint of executable returns zero offset in field 4 2024-12-05 09:52:07 +00:00
jan.nijtmans 93b8f2c306 Remove a lot of dead code: macOS < 10.9 is no longer supported 2024-12-04 20:31:44 +00:00
dgp 5b6d463fe5 Tentative release date in the changes file 2024-12-04 19:10:51 +00:00
jan.nijtmans 6e413c43c8 Remove a lot of dead code: macOS < 10.9 is no longer supported 2024-12-04 17:55:36 +00:00
jan.nijtmans e4eeed0516 Indenting 2024-12-04 17:51:43 +00:00
apnadkarni 20c57390d5 Remove zip -A from autoconf builds. Add tests for zipfs info 2024-12-04 16:02:59 +00:00
jan.nijtmans 1d7743062b One more TCL_UNUSED() usage 2024-12-04 14:37:24 +00:00
sebres bebf780532 fixed segfault [0b809cd3fc8b6e5e] by touching in coro referenced method of deleted instance (class/object);
there is no cross reference between methods and instances (probably to avoid cyclic refs), so reset the instance in method if class or object gets deleted in case the method will remain due to its ref-counter (referenced in coro)
2024-12-04 13:51:07 +00:00
jan.nijtmans 56352b57f9 On macOS, use the VFS pathname as name for the module, in stead of simply "[Memory Based Bundle]" 2024-12-04 09:10:47 +00:00
jan.nijtmans 8719276e69 On macOS, use the VFS pathname as name for the module, in stead of simply "[Memory Based Bundle]". 2024-12-03 13:11:07 +00:00
dkf 1ffc57fd9d Working towards an auto-publishing script 2024-12-03 10:14:24 +00:00
sebres fdc68c3ca7 small amend, avoiding SF (purely hypothetical Tcl_FSGetCwd may return NULL) 2024-12-02 14:33:01 +00:00
dgp 9940a8eee8 Plug memory leak. 2024-12-02 14:05:05 +00:00
apnadkarni 1ce5be853c Create new branch named "apn-encoding-refactor" 2024-12-02 10:44:15 +00:00
apnadkarni 6fe4ca16e3 Start on channel performance measurement tools 2024-12-02 09:42:11 +00:00
apnadkarni 64e7687480 TIP 707 2024-12-02 01:32:41 +00:00
jan.nijtmans cf4c69f2c6 Fix compiler-warnings when TCL_COMPILE_DEBUG=1 2024-12-01 17:42:24 +00:00
apnadkarni 1091aad2b0 Julian's patch for [aaa84fbbc5] - zipfs info returns 0 as start of zip data. 2024-12-01 12:40:45 +00:00
griffin b2e8e1720c Document incompatible change in treatment of reference counts when using Tcl_ListObjIndex with an abstract list, [bug-b343fe8656](b343fe8656). 2024-11-30 14:40:32 +00:00
griffin 911b8a64bc Add more detail about Abstract Lists 2024-11-30 00:47:46 +00:00
griffin da04948462 Document incompatible change in treatment of reference counts wrt Tcl_ListObjIndex. (bug-b343fe8656) 2024-11-28 19:48:32 +00:00
dgp 3dbdfe3049 more test hygiene -- avoid fragility in makeFile / removeFile 2024-11-27 19:49:29 +00:00
dgp 4f27a936b4 test hygiene 2024-11-27 19:29:51 +00:00
dgp cc1e951c86 Open release branch. 2024-11-27 16:01:11 +00:00
Torsten ca30f2c4bc fix typo in manual page on [info frame] 2024-11-27 10:50:18 +00:00
Torsten 80a9742784 fix typo in manual page on [info frame] 2024-11-27 10:48:39 +00:00
jan.nijtmans 235c2d52ae Merge-mark 2024-11-26 12:33:17 +00:00
jan.nijtmans 8b83e05bc9 (cherry-pick): Bug [5a1aaa20]: lsearch -stride with -subindices and -inline -all gives unexpected result 2024-11-26 12:11:12 +00:00
jan.nijtmans 927151221c Merge 8.6 2024-11-26 11:14:35 +00:00
jan.nijtmans ece94e099c (backport): in-src doc typos (Tcl_[Save|Restore|Discard]InterpState()). Add some typecasts. 2024-11-26 10:56:28 +00:00
bch a8ea26f4bb in-src doc typos (Tcl_[Save|Restore|Discard]InterpState()) 2024-11-25 21:01:27 +00:00
oehhar bce2ac34d1 Add bug [5a1aaa20] to changes.md 2024-11-25 18:56:53 +00:00
oehhar fc503952ea Bug [5a1aaa20]: lsearch -stride with -subindices and -inline -all gives unexpected result 2024-11-25 18:53:51 +00:00
jan.nijtmans 0aac11450e Update changes.md. No need to mention [882da1] in changes.md: It was a regression after [aee9f2], which never was in any public release 2024-11-25 13:02:51 +00:00
sebres 52382ae3fc merge 8.7 2024-11-25 12:01:15 +00:00
sebres 954b16f671 fixed validation of day of week for 24:00 (move to next day)
closes [882da1e28b]
2024-11-25 11:59:54 +00:00
jan.nijtmans f8c66e3936 No need to mention [882da1] in changes.md: It was a regression after [aee9f2], which never was in any public release. 2024-11-25 11:57:57 +00:00
jan.nijtmans f57e27e9c5 Re-apply fix [aee9f2b916], which was partially lost in [24e42b9bd1] 2024-11-25 11:53:56 +00:00
jan.nijtmans 33242b83a6 changes.md: [6ce3c0] is fixed. Add some more "known bugs" 2024-11-24 20:24:23 +00:00
sebres 634eb23b8b merge 8.7 2024-11-24 19:27:29 +00:00
sebres 6825daf978 code review, don't need special handling to adjust julianDay, date increment by 24:00 (or by leap second, not supported in validation yet); invalid time by 24:01 or 24:00:01 2024-11-24 19:25:22 +00:00
jan.nijtmans ec657fd9f7 No need for error-reporting in TclpLoadMemory(): If it fails, a fallback scenary is started, copying the shared library to /tmp. Error-message is lost anyway 2024-11-24 19:20:39 +00:00
sebres e234d026a9 avoid possible double validation of stage 2 (S2) 2024-11-24 18:52:35 +00:00
jan.nijtmans a4e3c593d9 No need for error-reporting in TclpLoadMemory(): If it fails, a fallback scenary is started, copying the shared library to /tmp. Error-message is lost anyway. 2024-11-23 15:38:12 +00:00
jan.nijtmans 6db08ac867 doc fix: Tcl_LibraryInitProc was introduced in Tcl 8.7/9.0 2024-11-23 13:44:54 +00:00
jan.nijtmans 88ef571135 Remove unused "interp" parameter from TclpLoadMemoryGetBuffer(). Make size type size_t. Add typecasts 2024-11-23 13:37:29 +00:00
jan.nijtmans 34e80a078a Revert "leapDay" stuff. Too early for 9.0.1 2024-11-23 12:37:54 +00:00
jan.nijtmans dc7756089a Revert "leapDay" stuff. Too early for 9.0.1. Update documentation 2024-11-23 12:06:55 +00:00
jan.nijtmans 31e18d82df Revert "leapDay" stuff. Update documentation 2024-11-22 22:00:10 +00:00
jan.nijtmans 12c3809ada Remove support for leap-minutes (I thought I already removed that) 2024-11-22 11:15:01 +00:00
jan.nijtmans ba7941deb7 Remove support for leap-minutes (I thought I already removed that) 2024-11-22 10:39:54 +00:00
jan.nijtmans fedd9987d8 Add simple year-check to leap-seconds detection: There were only leap seconds from 1972 - 2016 (which extends to januari 2017 in some timezones) 2024-11-22 10:17:02 +00:00
jan.nijtmans ef6ebb671d Use "switch" statement for month selection 2024-11-22 10:08:39 +00:00
jan.nijtmans a94dbf6bf8 Add simple year-check to leap-seconds detection: There were only leap seconds from 1972 - 2016 (which extends to januari 2017 in some timezones) 2024-11-22 09:28:32 +00:00
jan.nijtmans f1f9bb169e Change TclpLoadMemoryGetBuffer/TclpLoadMemory signature using size_t/Tcl_Size 2024-11-21 21:01:33 +00:00
jan.nijtmans 43e17d261d Change TclpLoadMemoryGetBuffer/TclpLoadMemory signature using size_t/Tcl_Size 2024-11-21 17:56:02 +00:00
dkf 964e488e77 Change a bunch of related defines into an enum, which they should have been already. 2024-11-21 17:02:26 +00:00
jan.nijtmans 7a2a109b38 cleanup indenting 2024-11-21 11:32:59 +00:00
jan.nijtmans 81aee5015a Fix [aee9f2b916] and [f2b5f89c0d]: clock scan of leapsecond/24:00, ISO-8601-compatibility. 2024-11-21 11:27:08 +00:00
jan.nijtmans 81a7a2df3e Fix [f2b5f89c0d]: clock scan of leapsecond: wrong result in 8.6 and 9.0.
Update changes.md
2024-11-21 11:14:26 +00:00
jan.nijtmans b6c8b6fe98 Uncomment printf. Allow 15-min timezones for leap-seconds as well 2024-11-20 21:17:33 +00:00
jan.nijtmans 265092d87f Rebase to 9.0. Improved parsing of leap-seconds 2024-11-20 21:06:41 +00:00
jan.nijtmans 85a7c5fc84 Fix [aee9f2b916]: clock scan -validate, ISO-8601, 24:00.
Remove HAVE_MKTIME: It isn't used anywhere any more
2024-11-20 19:33:41 +00:00
jan.nijtmans be06da0e35 Fix handling of "24:00 am" -validate 0: Should be 24 hours after "00:00 am". 2024-11-20 12:28:59 +00:00
jan.nijtmans 2e8a46a080 [aee9f2b916]: Allow "24:00", but only as indication for the end of the day. 2024-11-20 12:15:12 +00:00
jan.nijtmans ed6b0e3a8b Leap second could also happen on january 1st or july 1st 2024-11-19 23:42:55 +00:00
jan.nijtmans 88856a926a Be more strict when hours=24 2024-11-19 23:25:04 +00:00
jan.nijtmans 7a40831658 Update "changes" file with bugs fixed so far 2024-11-19 09:43:34 +00:00
oehhar 190537d033 Ticket [5a1aaa20]: adding tests (thanks Julian!) 2024-11-18 17:56:48 +00:00
oehhar 5118ca87f2 Ticket [5a1aaa20] proposed solution by Julian Noble (Thanks !) 2024-11-18 16:03:34 +00:00
jan.nijtmans 0499852129 Merge 9.0 2024-11-16 19:35:21 +00:00
sebres 1abd37cdf6 merge point (no changes) 2024-11-15 17:47:10 +00:00
sebres ac07bf22a2 fixed wrong time conversion by free-scan (-1 from ToSecond() caused day decrement) - now the result is the same as for formatted scan, backported from tclclockmod (8.7+); the fix is not really related to [f2b5f89c0d], but since 8.6 doesn't have validity rules, let it make consistent accross all versions.
repeat fix [83c5c578cb124286] (without space changes)
2024-11-15 17:44:02 +00:00
sebres 710f5eadee revert (too many non-functional space changes by backporting, will be repeated with fixed spaces) 2024-11-15 17:40:10 +00:00
sebres 67cd3a9509 merge 8.7 2024-11-15 17:33:53 +00:00
sebres 09256fafb8 small amend 2024-11-15 17:31:35 +00:00
sebres a0d8541633 added vice versa tests - definitely wrong conversions for -valid 1 (wrong day and month for a leap second) 2024-11-15 17:27:11 +00:00
sebres c86b8c1a81 merge 8.6, test extended with formatted scan and controlled by constraint valid_off now 2024-11-15 17:10:18 +00:00
sebres 2d7eacb076 fixed wrong time conversion by free-scan (-1 from ToSecond() caused day decrement) - now the result is the same as for formatted scan, backported from tclclockmod (8.7+);
the fix is not really related to [f2b5f89c0d], but since 8.6 doesn't have validity rules, let it make consistent accross all versions.
2024-11-15 17:02:17 +00:00
jan.nijtmans cb7d69bd7a Merge 9.0 2024-11-15 15:51:39 +00:00
oehhar 5361f86c16 try.n: Add an illustrative example to use "return" within a try block 2024-11-15 15:21:10 +00:00
jan.nijtmans 21f06d742f Add testcases related to [f2b5f89c0d]: clock scan of leapsecond: wrong result in 8.6 and 9.0 2024-11-15 11:38:46 +00:00
jan.nijtmans 5b76725c1e Add testcases related to [f2b5f89c0d]: clock scan of leapsecond: wrong result in 8.6 and 9.0 2024-11-15 11:18:26 +00:00
jan.nijtmans 040ea63268 Add testcases related to [f2b5f89c0d]: clock scan of leapsecond: wrong result in 8.6 and 9.0 2024-11-15 11:04:39 +00:00
jan.nijtmans aa3098d487 Testcases for various situations 2024-11-14 20:53:26 +00:00
jan.nijtmans 05cbdd7994 Fix leap-check for day-of-month 2024-11-14 17:59:12 +00:00
jan.nijtmans 39fd1f8bb3 A little bit smarter: leap seconds/minutes can only occur on june 30 or december 31. They cannot occur both at the same time, or in combination with hour==24. 2024-11-14 17:42:23 +00:00
jan.nijtmans bc8902c36b We can accept 24:00 as hour as well 2024-11-14 17:06:04 +00:00
jan.nijtmans 85f47986e2 Possible fix for [f2b5f89c0d]: clock scan of leapsecond: wrong result in 9.0 2024-11-14 16:49:28 +00:00
sebres 15fc661650 merge point (no changes) 2024-11-14 12:10:00 +00:00
sebres e76fe7a1c7 Fix problem in testcase 2024-11-14 12:07:49 +00:00
jan.nijtmans 70c21052d6 Fix problem in testcase 2024-11-14 09:40:51 +00:00
jan.nijtmans bdab951af5 Fix problem in testcase 2024-11-14 09:32:45 +00:00
jan.nijtmans b79a871fd6 Fix problem in testcase, caused by [01d1cd487a74c15a|this] commit 2024-11-14 09:26:50 +00:00
jan.nijtmans 9900c863e9 Merge 9.0 2024-11-13 21:56:54 +00:00
jan.nijtmans c1ee33eac3 Update rules.vc (sync with Tk 9.0, not needed for Tcl) 2024-11-13 20:19:15 +00:00
sebres 77108469e6 partial merge 8.7: fix and coverage for bug [43c94f95988f3057]: avoid vulnerability loading init.tcl in current directory, if some of the scripts in init resulting to empty tcl_library (must return "." if pwd is expected) 2024-11-13 19:45:06 +00:00
sebres f51cb58768 merge 8.6: fix and coverage for bug [43c94f95988f3057]: avoid vulnerability loading init.tcl in current directory, if some of the scripts in init resulting to empty tcl_library (must return "." if pwd is expected) 2024-11-13 19:39:30 +00:00
sebres 1ae70874a7 merge 8.5 2024-11-13 19:31:58 +00:00
sebres 53e0d37376 small amend: don't add empty dir to dirs var (error message) 2024-11-13 19:31:01 +00:00
sebres 070fe8842e fix and coverage for bug [43c94f95988f3057]: avoid vulnerability loading init.tcl in current directory, if some of the scripts in init resulting to empty tcl_library (must return "." if pwd is expected) 2024-11-13 18:18:34 +00:00
sebres 2c933faa34 fix and coverage for bug [43c94f95988f3057]: avoid vulnerability loading init.tcl in current directory, if some of the scripts in init resulting to empty tcl_library (must return "." if pwd is expected) 2024-11-13 18:14:13 +00:00
jan.nijtmans 6d26a8ddf1 (backport) Move non-error literal to TclOO's internal literal cache. 2024-11-13 15:37:49 +00:00
jan.nijtmans d0d263041d Sync "rules.vc" with Tk 2024-11-13 14:36:48 +00:00
dkf b0bf57a074 Move non-error literal to TclOO's internal literal cache. 2024-11-13 09:41:22 +00:00
jan.nijtmans f1841d637e Merge 9.0 2024-11-13 09:32:28 +00:00
jan.nijtmans ebdf684248 GHA win-, linux- and mac-flows: speed-up build (j4), add info section into build.
Remove some unneeded typecasts
2024-11-13 09:30:24 +00:00
jan.nijtmans 50e29e6c8f (backport) Make "-index" example more illustrative 2024-11-12 23:17:46 +00:00
jan.nijtmans 9d7cabf516 (backport) Make "-index" example more illustrative, Remove stray brace in example 2024-11-12 23:03:33 +00:00
pooryorick 10bc0bd548 Remove stray brace in example. 2024-11-12 14:59:18 +00:00
jan.nijtmans 1c918c6558 Merge 9.0 2024-11-12 13:20:02 +00:00
jan.nijtmans 8381c5b361 GHA win-, linux- and mac-flows: speed-up build (j4), add info section into build 2024-11-12 13:16:02 +00:00
jan.nijtmans 1ea4139850 backout [b569739692]: [02977e0004] Reduce impact of recursion depth bug. 2024-11-12 13:03:53 +00:00
jan.nijtmans 6df25285f5 backout [b569739692]: [02977e0004] Reduce impact of recursion depth bug.
Remove some unneeded typecasts. Some int -> Tcl_Size
2024-11-12 12:10:40 +00:00
jan.nijtmans 0c966fd915 backout [b569739692]: [02977e0004] Reduce impact of recursion depth bug. 2024-11-12 09:41:25 +00:00
jan.nijtmans d28b289d71 Use many many more ObjProc's in test code: we should give a good example here 2024-11-11 20:26:44 +00:00
jan.nijtmans 74b66d9bb7 backout [b569739692]: [02977e0004] Reduce impact of recursion depth bug. 2024-11-10 22:48:42 +00:00
jan.nijtmans e3d9addf08 Deprecate Tcl_CreateCommand() too. Use Tcl_CreateObjCommand2() in all testcases 2024-11-10 21:23:48 +00:00
jan.nijtmans f049258f63 (backport): Move table processing of DeclaredClassMethod 2024-11-09 00:13:38 +00:00
jan.nijtmans 060ce9e1df deprecate Tcl_CreateTrace 2024-11-08 16:32:33 +00:00
dkf 4ab16b8c5a Move table processing of DeclaredClassMethod 2024-11-08 15:59:28 +00:00
jan.nijtmans 37430650c7 More Tcl_ObjCmdProc2 usage 2024-11-08 14:49:07 +00:00
pooryorick a4db2b50db Fix for documentation issue [ac104c9ecb]: Make "-index" example more
illustrative.
2024-11-08 11:16:36 +00:00
jan.nijtmans eff01f04b4 argv->objv and int->Tcl_Size in testcases 2024-11-08 11:08:43 +00:00
jan.nijtmans 2433276755 Merge 9.0 2024-11-07 21:33:02 +00:00
jan.nijtmans df11da4bb0 Implement [364bd985d6]: install registry and dde in $INSTALL_DIR\lib always 2024-11-06 20:33:01 +00:00
jan.nijtmans df13de7a6a Implement [364bd985d6]: install registry and dde in $INSTALL_DIR\lib always 2024-11-06 20:08:33 +00:00
sebres 24bb96c054 GHA win-flow: speed-up build (j4), add info section into build 2024-11-05 10:48:58 +00:00
sebres d4200c875d GHA linux- and mac-flows: speed-up build (j4), add info section into build (cherry-picked from bug-02977e0004-sebres branch) 2024-11-05 10:45:22 +00:00
jan.nijtmans 043c409413 Fix [https://core.tcl-lang.org/tk/info/bb110c70d1|bb110c70d1]: cannot build .chm help file (Windows) 2024-11-04 20:39:42 +00:00
jan.nijtmans 6810d833a1 Fix [https://core.tcl-lang.org/tk/info/bb110c70d1|bb110c70d1]: cannot build .chm help file (Windows) 2024-11-04 20:27:53 +00:00
apnadkarni 9e18d94162 Merge 8.7 2024-11-02 08:11:57 +00:00
apnadkarni c2277b51a5 Merge 8.6 2024-11-02 07:55:36 +00:00
apnadkarni 51b104dd70 As in autoconf build, have nmake copy all .tcl files from library 2024-11-02 03:19:46 +00:00
sebres f8c01945a8 fix logic error of test oo-1.24 (deep nested ownership for class) - class destroy doesn't invoke destructor (it's only for object), so manually check whether they got deleted after destroy;
still marked as knownBug, but would work, if it gets ready implemented (see branch bug-02977e0004-sebres for instance)
2024-11-01 20:56:17 +00:00
dkf a8d9541d1b merge 8.7 2024-11-01 15:58:45 +00:00
dkf f00ce524b8 merge 8.6 2024-11-01 15:56:14 +00:00
dkf 07711187b0 [02977e0004] Reduce impact of recursion depth bug. 2024-11-01 15:51:41 +00:00
dkf 35fc7d6fd7 There still is a buggy case to worry about 2024-11-01 12:01:10 +00:00
dkf 07e79f990d Fix the bug by forcing classes to be destroyed eagerly while queueing instances. 2024-11-01 11:49:05 +00:00
sebres a18a9d248b merge 8.7 2024-10-31 13:54:37 +00:00
sebres f8fc146148 merge 8.6 2024-10-31 13:54:12 +00:00
sebres 6aab1a99d6 merge 8.5 2024-10-31 13:53:44 +00:00
sebres 353df0221f small amend (better explaining test titles) 2024-10-31 13:53:25 +00:00
sebres 5d6e53a3c1 merge 8.7 (clock: load TZ failure normalization and test coverage) 2024-10-31 13:32:33 +00:00
sebres 21b14c17c3 merge 8.6 (clock: load TZ failure normalization and test coverage) 2024-10-31 13:30:31 +00:00
sebres 104340e166 merge 8.5 (clock: load TZ failure normalization and test coverage) 2024-10-31 13:24:49 +00:00
sebres 19bb05e3eb more typos fixed, don't swallow real error message if read TZ fails, several fixed and normalizations, coverage for TZ-path safity check (path should not escape the given directory) 2024-10-31 13:21:49 +00:00
sebres 60067b5ae6 typo (zone name in errorcode) 2024-10-31 12:30:02 +00:00
apnadkarni 0f3cd34790 Merge 8.7 - TIP 701 - Tcl_FSTildeExpand C API 2024-10-30 12:24:24 +00:00
apnadkarni 66d79ff86d TIP 701 - Tcl_FSTildeExpand C API 2024-10-30 11:38:45 +00:00
apnadkarni 0921fce0d6 Add Tcl_FSTildeExpand manpage. Do not depend on caller to clean up output DString on error 2024-10-30 11:24:39 +00:00
sebres 1417cbb539 merge 8.7: fixes regression and further bug [2c237beffbace823] 2024-10-29 18:39:32 +00:00
sebres 4f54ea321f merge 8.6: fixes regression and further bug [2c237beffbace823] 2024-10-29 18:37:33 +00:00
sebres bcc7336053 amend to test clock-59.2: cover free-scan too 2024-10-29 18:32:49 +00:00
sebres c4539d78a1 merge 8.5 (branch bug-fix-tz-w-offs): fixes regression and further bug [2c237beffbace823]:
- tools/tclZIC.tcl: fixes TZ-names by generation for TZs having %z in database as name (simply mapping offset to zone name, like -7200 -> -0200);
  - update to TZDATA 2024b with fixed tclZIC (replacing %z with offset TZ);
  - usage of time zones `Etc/GMT±n` is allowed now (were impossible previously due to incorrect prevention of path escape for the tzdata directory);
  - test coverage (test clock-59.2)
2024-10-29 18:29:47 +00:00
sebres cbc72bac2d small amend (fixing the test for 8.5) 2024-10-29 18:21:29 +00:00
sebres 17da383e83 merge branch bug-fix-tz-w-offs: fixes regression and further bug [2c237beffbace823]:
- tools/tclZIC.tcl: fixes TZ-names by generation for TZs having %z in database as name (simply mapping offset to zone name, like -7200 -> -0200);
  - update to TZDATA 2024b with fixed tclZIC (replacing %z with offset TZ);
  - usage of time zones `Etc/GMT±n` is allowed now (were impossible previously due to incorrect prevention of path escape for the tzdata directory);
  - test coverage (test clock-59.2)
2024-10-29 18:14:31 +00:00
sebres e03a8502e0 additional fix for [2c237beffbace823]: usage of time zones Etc/GMT±n were impossible previously due to incorrect prevention of path escape for the tzdata directory 2024-10-29 18:08:25 +00:00
sebres a90925aec7 clock.test: coverage for regression and further bugs [2c237beffbace823] 2024-10-29 18:02:24 +00:00
sebres dc9d7153c5 Update to TZDATA 2024b with fixed tclZIC (replacing %z with offset TZ) 2024-10-29 16:45:48 +00:00
sebres 17e62ed85c tools/tclZIC.tcl: fixes TZ-names by generation for TZs having %z in database as name (simply mapping offset to zone name, like -7200 -> -0200) 2024-10-29 16:37:04 +00:00
dkf 35bc1b353a Trying to fix [02977e0004], but causes other problems. 2024-10-26 19:57:26 +00:00
jan.nijtmans 2fdbc57b29 Merge 9.0 2024-10-25 20:37:13 +00:00
jan.nijtmans e583bbba13 doc/clock.n: typo. Spacing in ::tcl::unsupported::icu 2024-10-25 17:26:17 +00:00
jan.nijtmans 0926cf197b Add tcl::unsupported::icu normalize 2024-10-25 17:01:25 +00:00
sebres 64f495d749 doc/clock.n: typo 2024-10-25 15:52:03 +00:00
jan.nijtmans a9f812bd62 Rebase to latest 9.0 2024-10-25 14:20:35 +00:00
jan.nijtmans bc112f0c7a (void *)NULL -> (char *)NULL, where appropriate 2024-10-25 10:54:46 +00:00
jan.nijtmans 0723ee416f (void *)NULL -> (char *)NULL, where appropriate 2024-10-25 10:44:44 +00:00
jan.nijtmans 2c6c84f5ec Merge 9.0 2024-10-25 10:29:02 +00:00
jan.nijtmans 5a2f6b51c2 Merge 9.0 (9.0.0 release) 2024-10-25 09:56:16 +00:00
jan.nijtmans 3d82d4b04e Merge 9.0 2024-10-25 09:25:46 +00:00
jan.nijtmans 81a7f40369 tcltest::bytestring was removed in Tcl 9.0 See: [a3e8f513cc]: tcltest(n) still mentions [encoding convertfrom identity] 2024-10-24 14:46:27 +00:00
jan.nijtmans 13c4884f6a Merge 8.6 2024-10-24 14:41:15 +00:00
jan.nijtmans 83f6c2c0bf tcltest::bytestring is deprecated. Document that (and don't use it any more) 2024-10-24 14:38:06 +00:00
jan.nijtmans 947cd5049c Document that [file dirname [file dirname [info nameofexecutable]]]/lib is also added to $auto_path during initialization. 2024-10-24 11:37:56 +00:00
jan.nijtmans e324e215a7 Document that [file dirname [file dirname [info nameofexecutable]]]/lib is also added to $auto_path during initialization. 2024-10-24 11:36:43 +00:00
jan.nijtmans b099296420 Document that [file dirname [file dirname [info nameofexecutable]]]/lib is also added to $auto_path during initialization. 2024-10-24 11:33:37 +00:00
jan.nijtmans beec5bdef2 Merge-mark 2024-10-24 09:22:05 +00:00
jan.nijtmans 1b54546abb Merge 8.6 2024-10-24 09:21:04 +00:00
jan.nijtmans b14fabadb9 tclOldParse.c doesn't exist any more 2024-10-24 09:05:09 +00:00
jan.nijtmans 7d90d230c6 Use TCL9_0_TM_PATH in examples in stead of 8_x. tclOldParse.c doesn't exist any more. 2024-10-24 08:26:53 +00:00
apnadkarni ec8931e28b Add missing constraint to icu tests 2024-10-23 14:44:41 +00:00
jan.nijtmans 4d839dcb5d Fix documentation on tcl_wordchars/tcl_nonwordchars 2024-10-23 13:40:03 +00:00
jan.nijtmans ab3a945b2a Update docs regarding tilde substitution (backported from 9.0). For TCLLIBPATH, do the same tilde substitution as done for TCLx.y_TM_PATH (backported from 9.0 too) 2024-10-23 13:37:49 +00:00
jan.nijtmans e5d1b8b610 Fix documentation on tcl_wordchars/tcl_nonwordchars 2024-10-23 13:19:35 +00:00
sebres 500870f53e merge 8.7 2024-10-23 11:21:41 +00:00
sebres 378f3e8c52 merge 8.6, conflicts resolved 2024-10-23 11:13:32 +00:00
sebres 9fa648b0e5 win/Makefile.in: amend to [bc693446a9001783]: fixes "--disable-shared" build (make libtcl.a directly) 2024-10-23 10:41:18 +00:00
dkf e95bdb053b Don't make the var be Interp* when all uses are Tcl_Interp* 2024-10-23 08:44:53 +00:00
sebres d5840fab55 small amend to [bc693446a9001783] (forgotten unsaved changes) 2024-10-22 22:12:19 +00:00
sebres fd5e75974c win/Makefile.in: fixed recipe and dependency for ${TCL_LIB_FILE} (built with ${TCL_DLL_FILE});
closes [bc693446a9001783]
2024-10-22 21:35:32 +00:00
apnadkarni 7409c77c3c Add tcl::unsupported::icu normalize 2024-10-22 17:09:53 +00:00
apnadkarni e269f2c74c Add sanity tests for ICU normalization 2024-10-22 16:55:52 +00:00
jan.nijtmans f578c3cbe8 Merge 8.7. Eliminate some code duplication. (void *)NULL -> (char *)NULL 2024-10-22 15:10:41 +00:00
jan.nijtmans 011e1b744a (cherry-pick): Fix [66da4d4228] - UTF-16 encoder buffer overflow 2024-10-22 13:08:16 +00:00
dkf 21d0451bbb Test of nested ownership destruction order 2024-10-22 08:59:24 +00:00
apnadkarni 712e9c00f7 Fix [66da4d4228] - UTF-16 encoder buffer overflow. More encoding tests 2024-10-21 02:39:20 +00:00
jan.nijtmans 88851ceb44 Implement [364bd985d6]: install registry and dde in $INSTALL_DIR\lib always 2024-10-20 11:48:12 +00:00
apnadkarni 770e4adc3e Fix test for cesu-8 2024-10-19 16:27:45 +00:00
apnadkarni 395b4ee41d Fix [66da4d4228] - UTF-16 encoder buffer overflow 2024-10-19 16:19:13 +00:00
apnadkarni d8b4186549 Add tests for destination buffer limits in encoders 2024-10-19 15:55:09 +00:00
apnadkarni f74d690bca Merge trunk 2024-10-19 05:59:36 +00:00
apnadkarni a70d63568e Merge trunk 2024-10-19 05:45:37 +00:00
jan.nijtmans 22daa38bfb tcl_wordchars and tcl_nonwordchars doc fix proposal. See [f88bc5ff88] 2024-10-18 19:05:48 +00:00
jan.nijtmans 1b58229e2c Fix [73d5cb615e]: zlib-8.8, zlib-8.16 fail on Fedora 40, gcc 14.1.1 2024-10-18 15:17:12 +00:00
jan.nijtmans b6628431a7 Fix [73d5cb615e]: zlib-8.8, zlib-8.16 fail on Fedora 40, gcc 14.1.1
backport [cfdf80a2efc6]: zlib checksum is negative
2024-10-18 15:12:26 +00:00
jan.nijtmans c1d266d18e Fix [73d5cb615e]: zlib-8.8, zlib-8.16 fail on Fedora 40, gcc 14.1.1
backport [cfdf80a2efc6]: zlib checksum is negative
2024-10-18 15:06:55 +00:00
jan.nijtmans 1f3f7f34ae Proposed fix for [73d5cb615e]: zlib-8.8, zlib-8.16 fail on Fedora 40, gcc 14.1.1 2024-10-17 21:23:55 +00:00
jan.nijtmans b919e785cb Remove a lot of stuff meant for macOS < 10.9 2024-10-16 21:44:45 +00:00
jan.nijtmans 6094261469 Remove a lot of stuff meant for macOS < 10.9 2024-10-16 21:04:24 +00:00
jan.nijtmans b3cc5512a7 macOS 12 runner image will be removed 2024-10-16 20:33:39 +00:00
jan.nijtmans 0bc52e06e1 Remove obsolete -single_module linker flag 2024-10-16 20:22:44 +00:00
jan.nijtmans a596dce1d8 Put back some lines in tcl.m4: the "gettimeofday" detection fails without it 2024-10-16 11:24:23 +00:00
jan.nijtmans 0adfda047b Put back some lines in tcl.m4: the "gettimeofday" detection fails without it 2024-10-16 11:22:12 +00:00
jan.nijtmans ad34bfcf7b SunOS 4 is no longer supported 2024-10-16 08:20:54 +00:00
jan.nijtmans 5ea2bdc45d SunOS 4 is no longer supported 2024-10-16 08:10:09 +00:00
jan.nijtmans b0e6078520 Use $::tcl_platform(pathSeparator) in stead of constructiong $sep 2024-10-15 14:24:55 +00:00
jan.nijtmans e0c5736c59 Remove a lot of stuff meant for macOS < 10.9 2024-10-14 20:30:33 +00:00
jan.nijtmans 779958ef17 Eliminate HAVE_ZLIB everywhere. See [1210ec8424] 2024-10-13 13:30:34 +00:00
jan.nijtmans 8c8520cfe1 Rebase to 9.0. Re-generate "configure" 2024-10-09 16:34:57 +00:00
jan.nijtmans ee1bf9db84 Merge-mark 8.7. Indenting (8 spaces -> tabs) 2024-10-09 16:26:52 +00:00
jan.nijtmans b592080d7e Fix warning: warning C4047: 'function': 'char *' differs in levels of indirection from 'const char **' on Windows.
Remove unneeded (char *) typecast in ckfree() usage
2024-10-09 16:05:29 +00:00
jan.nijtmans 2ba12cd8d2 Indenting in testcases. Always use tabs in stead of 8 spaces 2024-10-09 08:16:29 +00:00
jan.nijtmans b2ccc20dee Follow-up for [0439e1e1a3]: Slow detection of illegal expr argument. Same fix in more places. Only use "list" for real lists 2024-10-08 22:36:25 +00:00
jan.nijtmans e301c28ca2 Fix [0439e1e1a3]: Slow detection of illegal expr argument 2024-10-08 22:26:25 +00:00
jan.nijtmans 880a3b1ea5 Do an additional check, before declaring something "a list" 2024-10-08 15:17:01 +00:00
jan.nijtmans f0f692abc9 Rebase to 9.0 2024-10-08 13:19:51 +00:00
pooryorick aa4357dad8 In Tcl_GetNumberFromObj() change the dictionary length check from > 1 to > 0 to
determine whether the value can be parsed as a number, and make corresponding
changes in tclObj.c and expr.test.
2024-10-07 21:47:14 +00:00
jan.nijtmans 96477e3b48 Update nmakehlp.c 2024-10-05 21:15:07 +00:00
jan.nijtmans 4fd16c7508 Update nmakehlp.c 2024-10-05 21:12:53 +00:00
jan.nijtmans 0c1026ca4a Backport vctool 2024-10-05 21:08:50 +00:00
jan.nijtmans 505cc6230f Move new stub entry to 657, which is slightly better 2024-10-05 21:00:47 +00:00
dkf be3a7c7930 Complete the FOREACH_HASH family 2024-10-05 08:50:43 +00:00
apnadkarni ba0645c4d0 vctool - fix confusion between 'debug' and 'pdbs' options 2024-10-05 06:05:05 +00:00
jan.nijtmans fe4b5d751b Update nmakehlp.c 2024-10-03 11:30:28 +00:00
jan.nijtmans d94f2492d2 Update links, pointing to the 9.0 release as well 2024-10-03 08:21:20 +00:00
jan.nijtmans 37758f57d5 Update links, pointing to the 9.0 release as well 2024-10-03 08:18:33 +00:00
jan.nijtmans f3d70aa826 Update links, pointing to the 9.0 release as well 2024-10-03 08:13:27 +00:00
jan.nijtmans 4f7bc38acc Use version number "9.0" somewhat more in comments 2024-10-02 11:49:12 +00:00
apnadkarni e50a7916bd Bug [67d5f75c36]. Revert to 8.6 behaviour. Recompile lambda on interp mismatch 2024-10-01 17:17:37 +00:00
jan.nijtmans 4ff6d7433f (cherry-pick): Even when building against Tcl8, PRJLIBNAME9 should not have the "t" suffix
else it breaks pkgIndex.tcl.in in extensions that load version-specific binary
at runtime.
2024-09-30 09:30:05 +00:00
dkf fc65208db6 Use more named constants in TclOO implementation 2024-09-30 08:25:30 +00:00
apnadkarni b4c4e18c41 Even when building against Tcl8, PRJLIBNAME9 should not have the "t" suffix
else it breaks pkgIndex.tcl.in in extensions that load version-specific binary
at runtime.
2024-09-29 10:52:13 +00:00
jan.nijtmans 8ea91f5bd1 Cherry-pick 2 trivial fixes from 'documentation-cleanup-for-transition' branch 2024-09-27 10:25:50 +00:00
jan.nijtmans 874d2534ea Cherry-pick 2 trivial fixes from 'documentation-cleanup-for-transition' branch 2024-09-27 10:24:30 +00:00
jan.nijtmans b30c50fa28 Version -> 8.6.16 2024-09-27 10:17:13 +00:00
jan.nijtmans b0d832e23c version -> 9.0.1 2024-09-27 08:38:15 +00:00
apnadkarni 11e306da8c Merge 8.7 - Fix zipfs canonical manpage 2024-09-27 03:20:35 +00:00
apnadkarni e5934bd6d1 Fix zipfs canonical manpage to match TIP 430 and actual implementation 2024-09-27 03:18:42 +00:00
jan.nijtmans b7d482027a Don't use "9.0b3" any more. Spacing 2024-09-26 21:28:16 +00:00
jan.nijtmans 47bc45a266 Backport Tcl_BounceRefCount() from Tcl 9.0 2024-09-26 21:08:47 +00:00
jan.nijtmans b9378388c8 Backport http 2.10.0 from 9.0 2024-09-26 20:20:34 +00:00
jan.nijtmans c547944031 Merge-mark 8.7 2024-09-26 19:41:21 +00:00
jan.nijtmans bb91320f93 Backport many small documentation changes (as far as appropriate) from 9.0. Update changes.md 2024-09-26 19:32:04 +00:00
dgp b44e4cf08a Open space in changes.md for new changes to be recorded as they are developed. 2024-09-26 18:40:51 +00:00
dgp a3f06e944e merge release 2024-09-26 18:29:58 +00:00
jan.nijtmans 8a6a994a76 TclMaxListLength() is already checked for within SetDoubeFromAny() 2024-09-25 22:09:11 +00:00
jan.nijtmans 5a0ecd4f01 Code de-duplication, move it to TclParseNumber() 2024-09-25 21:45:53 +00:00
jan.nijtmans cacbee80a9 Merge-mark 2024-09-25 14:08:25 +00:00
dgp f152ab6f3f merge trunk 2024-09-25 13:56:53 +00:00
dgp 786210a4c5 Sync test suite to latest code change 2024-09-25 13:56:33 +00:00
dgp 5ba9c97963 A few more compatibility warnings in the release notes. 2024-09-25 13:49:46 +00:00
dgp 9ab26f848b merge trunk 2024-09-25 13:45:10 +00:00
jan.nijtmans d6b06d69c4 Rebase to 9.0 2024-09-25 11:37:42 +00:00
Torsten 79ecc38fc3 one more occurence of version 8.7 removed 2024-09-25 10:53:59 +00:00
Torsten dfcd7e2cc8 purged mentions of Tcl 8.7 in man pages (apart from usage in .VS and .VE macros which will not lead to visual output of the version number) 2024-09-25 10:50:49 +00:00
jan.nijtmans a0ab47598b Rebase to 9.0 2024-09-25 08:34:06 +00:00
jan.nijtmans 34a9f09666 Modify fix for [0439e1e1a3], no conversion to list any more. Reported by AKU. 2024-09-25 07:38:41 +00:00
jan.nijtmans f16a5caf2e Merge 9.0. Use TclMaxListLength() to determine error-message in stead of converting to a list 2024-09-24 21:46:55 +00:00
jan.nijtmans 05b86315c5 &mdash; -> — 2024-09-24 08:14:36 +00:00
dgp cd91553ab5 Merge trunk; Remove "Known Bugs" that are now fixed; changes file wordsmithing 2024-09-23 16:38:30 +00:00
jan.nijtmans 74097337fc Fix [e38dce74e2]: Command line built with list not properly quoted 2024-09-22 16:22:36 +00:00
jan.nijtmans b0b683bd4a Fix [e38dce74e2]: Command line built with list not properly quoted 2024-09-22 16:12:25 +00:00
jan.nijtmans 2b3fc4a71b Add testcases, proving that bug [e38dce74e2] is not present in 8.6 2024-09-22 15:39:31 +00:00
apnadkarni b1f42b432a Merge 8.7 - coroutine doc duplicate text 2024-09-22 06:22:03 +00:00
apnadkarni 4d6cf6b594 Docs - Fix spurious .RE in encoding.n, remove duplicate text in coroutine.n 2024-09-22 06:17:11 +00:00
jan.nijtmans 3f90a262e2 It looks like ListObjIsCanonical() is needed after all 2024-09-21 22:46:21 +00:00
jan.nijtmans 89414d6866 Another testcase, which gives a different result in 8.6 2024-09-21 22:35:29 +00:00
dkf 475d0498c6 Fix ungrammatical doubling of words in comments 2024-09-21 08:41:51 +00:00
sebres c9e31032b0 a bit better form (simply reset the string representation and return, since the object is unshared) 2024-09-20 20:22:28 +00:00
jan.nijtmans 87448892f0 Fix for [e38dce74e2]: Command line built with list not properly quoted. With test-case 2024-09-20 12:31:31 +00:00
jan.nijtmans 4248deef0b Merge-mark 2024-09-19 12:21:44 +00:00
jan.nijtmans 18a79e6b53 Backport tclIcu.c improvements from 9.0. Some indenting 2024-09-19 12:20:16 +00:00
jan.nijtmans eb7a5bcf6a fraktion -> fraction 2024-09-19 11:47:35 +00:00
jan.nijtmans 88bb6557e7 Merge 8.7 2024-09-19 10:13:27 +00:00
jan.nijtmans e28d7f1b1e Backport a lot of doc improvements from 9.0 2024-09-19 10:08:13 +00:00
jan.nijtmans 6db25dbb4a One more "Known bugs" 2024-09-18 20:28:20 +00:00
dgp 5a9ab2deb0 merge trunk 2024-09-18 18:36:45 +00:00
sebres 95506b3358 merge 8.7 (silence warn for no-trapv, [f6fc75cbdd0fa593]) 2024-09-18 15:45:55 +00:00
sebres a04df5ccba closes [f6fc75cbdd0fa593]: silence unknown pragma warning for no-trapv (__GNUC__ is also defined by clang) 2024-09-18 15:43:29 +00:00
dkf 4c088303b0 Remove symbol from master build instructions 2024-09-18 14:21:02 +00:00
dkf df4de7d3c7 Always have zlib, so no non-zlib code need remain 2024-09-18 14:17:34 +00:00
sebres b870c14eb4 merge 8.7 (mem-leak fix for [02d5d65d70]) 2024-09-18 10:54:54 +00:00
sebres cc7e483769 amend to [02d5d65d70]: fixed memory leak (using translated path) 2024-09-18 10:53:49 +00:00
apnadkarni ae62d747ae Merge 8.7 - Very minor typo - pathname -> pathtype 2024-09-18 03:00:59 +00:00
apnadkarni 4dd455c056 Merge 8.6 - Very minor typo - pathname -> pathtype 2024-09-18 02:59:07 +00:00
apnadkarni 5005fcded9 Very minor typo - pathname -> pathtype 2024-09-18 02:55:54 +00:00
sebres cfca71facc amend for 9.0 (windows only): since paths starting with ~ are relative in 9.0 for windows, it doesn't need to consider tilde expansion (in opposite to 8.x) 2024-09-17 15:42:05 +00:00
sebres 5f45cd9b77 merge 8.7: avoid unneeded (but expensive) path normalization for several file subsystem commands and operations;
closes [02d5d65d70adab97] and probably [411f52ed87e313dd49e2]
2024-09-17 15:35:29 +00:00
sebres 617e81d982 small amend improving (path in zipfs) lookup 2024-09-17 15:25:38 +00:00
sebres 906c3058ea fixes further normalization bottleneck of 8.7+ [02d5d65d70adab97], guess [411f52ed87e313dd49e2] too (zipfs now) 2024-09-17 15:17:44 +00:00
sebres 56763a32c0 merge 8.6 (fix attempt for [02d5d65d70adab97], however the small bottleneck is still visible) 2024-09-17 14:32:28 +00:00
dkf a3e8589a96 Extend the notes in the changes file 2024-09-17 14:24:16 +00:00
sebres a680486042 improve comments (no functional changes) 2024-09-17 14:19:53 +00:00
sebres 18ed5377e6 merge bug-02d5d65d70adab97: avoid unneeded (but expensive) path normalization for several file subsystem commands and operations;
closes [02d5d65d70adab97]
2024-09-17 14:13:14 +00:00
dkf c5aa0c5057 Remove 'known bug' listing for issue that was fixed several months ago 2024-09-17 10:29:49 +00:00
jan.nijtmans 36f92e4f3a Merge 8.7 2024-09-17 08:09:21 +00:00
jan.nijtmans 98f40f7dfb Merge 8.6 2024-09-16 16:41:50 +00:00
dgp e5dcd8f739 merge release 2024-09-16 16:30:50 +00:00
jan.nijtmans f47cb1e7bc Backport doc improvements from 9.0 2024-09-16 16:28:16 +00:00
dkf 9d390b7de5 [708422] Nice test case. Bug report duplicates [7842f33a5c] 2024-09-16 16:05:35 +00:00
dkf 6b697e3607 [680503]: Ensure we make the shadow delegate even if there is no argument to the class constructor. 2024-09-16 14:44:05 +00:00
dkf 1f9cd9ee4b [680503]: Ensure we make the shadow delegate even if there is no argument to the class constructor. 2024-09-16 14:39:12 +00:00
jan.nijtmans c07357c66d Clarify TCL_PACKAGE_PATH change in "changes" file 2024-09-16 10:56:22 +00:00
jan.nijtmans 4a57ce1c15 compile-13.2: added dynamic constraint for unix boxes (avoid SO for small stack limit) - ensure the stack is large enough for this test (larger than 2048)
Update testcase
2024-09-14 21:26:38 +00:00
jan.nijtmans ccd9102421 compile-13.2: added dynamic constraint for unix boxes (avoid SO for small stack limit) - ensure the stack is large enough for this test (larger than 2048) 2024-09-14 21:14:57 +00:00
jan.nijtmans 2617056646 Update testcase 2024-09-14 21:01:49 +00:00
jan.nijtmans 410ed7df4c Fix [63325009a8]: \u0400 conversion to and from cesu-8 fails 2024-09-13 21:18:42 +00:00
jan.nijtmans 30983dad6f Fix [63325009a8]: \u0400 conversion to and from cesu-8 fails. 2024-09-13 20:06:39 +00:00
sebres f2b14cb7f0 small amend: move the normalization to the block where the error message really needed 2024-09-13 14:26:26 +00:00
sebres 2e33dd7618 compile-13.2: added dynamic constraint for unix boxes (avoid SO for small stack limit) - ensure the stack is large enough for this test (larger than 2048) 2024-09-13 13:29:00 +00:00
sebres bddda24061 amend considering possible tilde expansion in absolute paths starting with ~, so proper error message by tests *io-40.17 "tilde substitution in open" 2024-09-13 12:37:53 +00:00
jan.nijtmans 678b19139c Merge-mark 2024-09-13 12:20:02 +00:00
jan.nijtmans dfa2b92ace (Backport): Fix bug [fccb9f322f] - system encoding detection 2024-09-13 12:16:56 +00:00
sebres 1dab1b639f because the normalization is very expensive (see [02d5d65d70adab97]), don't invoke it for native or absolute paths, so aviod normalization "just to ensure we return the correct error messages under some circumstances" 2024-09-13 12:07:55 +00:00
sebres fea5ae7451 even if cwd is non native, but path is not relative we can safely use translated path instead of normalized path;
fixes file access regression [02d5d65d70adab97]
2024-09-13 12:02:53 +00:00
sebres 2474f2092f TclFSCwdIsNative may return wrong result when cwd is not initialized in TSD (if pwd/cd never called for this thread) 2024-09-13 11:57:41 +00:00
sebres 6428e3e32a added performance regression tests illustrating [02d5d65d70adab97] 2024-09-13 11:51:24 +00:00
jan.nijtmans ef7b5493aa One more "Known bug" 2024-09-12 22:56:50 +00:00
jan.nijtmans 08cb5cef6e Add "Known bugs" section 2024-09-11 21:04:48 +00:00
dgp 31d193aeaa merge trunk 2024-09-11 19:36:22 +00:00
jan.nijtmans eb26f62883 Update changes.md version to 9.0.0. http -> 2.10.0 2024-09-11 16:57:08 +00:00
Torsten 1fa64f06e8 Unified naming of the Mac to 'macOS' as other names are outdated since 2016 (macOS Sierra, version 10.12) 2024-09-11 07:37:14 +00:00
apnadkarni 9cf0f1b9b7 Add tcl::idna, expr operators, oo to changes.md 2024-09-11 06:31:29 +00:00
apnadkarni bb8c0eb033 Add Tcl_FSTildeExpand and tests 2024-09-11 03:04:10 +00:00
apnadkarni 8c9951c670 Create new branch named "tip-701" 2024-09-11 02:47:53 +00:00
jan.nijtmans 92b2164143 3th "load" argument should be Titlecase
Fix registry library name for Tcl 9
2024-09-10 19:58:18 +00:00
jan.nijtmans e5759a2dc4 3th "load" argument should be Titlecase 2024-09-10 19:48:21 +00:00
dgp d468e23543 merge trunk 2024-09-10 14:58:45 +00:00
dgp 1a98213e55 Correct spelling, and note incompatible change in TCL_PACKAGE_PATH format. 2024-09-10 14:08:25 +00:00
dgp bf6cb3e116 Record tzdata update. 2024-09-10 13:54:48 +00:00
dgp cf639728be merge 8.7 2024-09-10 13:27:22 +00:00
dgp 5a32f3acb9 silence compiler warning 2024-09-10 13:26:33 +00:00
dgp a3755f5fe3 Merge trunk; silence compiler warning. 2024-09-09 21:21:02 +00:00
dgp 3b78517c39 merge 8.6 2024-09-09 20:28:58 +00:00
jan.nijtmans 933ddfa420 size_t -> Tcl_Size (twice) 2024-09-09 18:45:05 +00:00
jan.nijtmans b6b8c1ac8f size_t -> Tcl_Size, for maximum compatibility with Tcl 8.6 2024-09-09 18:37:53 +00:00
jan.nijtmans 8556b71429 Update to TZDATA 2024b 2024-09-07 23:01:05 +00:00
jan.nijtmans be2f268a3b Update to TZDATA 2024b 2024-09-07 22:58:51 +00:00
jan.nijtmans d0d47aa17e Fix [324ffb0d9]: Files missing from distribution 2024-09-07 22:56:16 +00:00
jan.nijtmans b9bc6aea21 Empty lines between entries (as all earlier release notes) 2024-09-07 22:41:55 +00:00
jan.nijtmans 5ada8988cb TIP #514 was only accepted for Tcl 8.7+, not for 8.6 2024-09-07 22:23:36 +00:00
jan.nijtmans 84c1f89316 Update to TZDATA 2024b 2024-09-07 22:18:45 +00:00
dgp 83d8cd6b00 update / date changes 2024-09-06 16:08:46 +00:00
dgp 00dafbd339 merge trunk 2024-09-03 16:47:35 +00:00
dgp 1920856d4b merge 8.6 2024-09-03 16:11:13 +00:00
jan.nijtmans 268ca5ba31 typo's 2024-09-02 11:37:40 +00:00
jan.nijtmans e6d2f5c7c9 Merge-mark 2024-09-02 11:26:05 +00:00
jan.nijtmans eb0757a96a Merge-mark 2024-09-02 11:23:37 +00:00
jan.nijtmans 9074073bfc cherrypicked typos, errors and clarifications from the documentation-cleanup-for-transition branch (those marked as 'Fix:') 2024-09-02 11:22:51 +00:00
Torsten 65b432ba28 cherrypicked typos, errors and clarifications from the documentation-cleanup-for-transition branch (those marked as 'Fix:') 2024-09-02 11:17:03 +00:00
Torsten 5bd4eed982 cherrypicked typos, errors and clarifications from the documentation-cleanup-for-transition branch (those marked as 'Fix:') 2024-09-02 11:00:42 +00:00
jan.nijtmans 2652b3900f TIP #691 is still in draft, it was never merged to any branch (and probably never will) 2024-09-02 10:59:20 +00:00
oehhar 0ed16e10d8 Proposal for TCL8.6.15 changes entries 2024-09-02 09:15:41 +00:00
griffin cf8be2a4a6 Fix for ticket [f4a4bd7f1070] - lseq "count" argument also dictates output formatting.
Solved by only consdering the start, end, and step values to determine the value formatting of the results. Real numbers can still be used for the Count value, as long as the value is a whole number.
2024-09-01 22:43:33 +00:00
oehhar ca23d5ac4f Start with 8.6.15 changes file 2024-09-01 15:11:58 +00:00
dgp 54b4315b47 merge trunk 2024-08-30 15:50:17 +00:00
apnadkarni 39c100c9b3 Delete duplicated text fragment in lseq manpage 2024-08-30 03:24:46 +00:00
dgp 860272731a Release branch for Tcl 9.0.0 2024-08-28 17:17:17 +00:00
pooryorick 653e0a778f Fix logic that was inadvertently inverted back in [295715a1b1b2c3d5] 2024-08-27 10:50:11 +00:00
dgp 22636c1400 Bump version to 8.6.15 in prep for a new patch release. 2024-08-26 18:25:27 +00:00
jan.nijtmans 4cf671c58e Fix static build on MSVC 2024-08-24 11:20:02 +00:00
jan.nijtmans 9a6255f6d5 Fix static build on MSVC 2024-08-24 10:50:08 +00:00
jan.nijtmans 1d1739360c Minor fix in "load" documentation. Update release notes for "info loaded" change 2024-08-23 19:48:49 +00:00
jan.nijtmans 6f8556fcff Update "info loaded" documentation. Add "info loaded" change to release notes 2024-08-23 19:41:01 +00:00
jan.nijtmans ff16c55025 Don't pack the dde/registry dll's any more for static builds. See: [https://core.tcl-lang.org/tk/tktview/939496ee1b|939496ee1b] 2024-08-23 15:26:20 +00:00
jan.nijtmans ea0a097378 Don't pack the dde/registry dll's any more for static builds. See: [https://core.tcl-lang.org/tk/tktview/939496ee1b|939496ee1b] 2024-08-23 15:18:50 +00:00
jan.nijtmans 663cb6bbff Eliminate compiler warning regarding ZLIB_VER_MAJOR on --disable-shared builds (seen on Windows) 2024-08-23 14:36:52 +00:00
jan.nijtmans 245784fced Eliminate compiler warning regarding ZLIB_VER_MAJOR on --disable-shared builds (seen on Windows) 2024-08-23 14:33:23 +00:00
jan.nijtmans 8f22d5e21a Documentation/comment fixes [dcc8645349] 2024-08-23 13:56:13 +00:00
jan.nijtmans bea7a7b5a2 Documentation/comment fixes [dcc8645349] 2024-08-23 13:53:37 +00:00
jan.nijtmans 5773f376ba formatting. Missing "command" 2024-08-23 12:15:51 +00:00
jan.nijtmans 3fcdcb78b8 Documentation/comment fixes [dcc8645349] 2024-08-23 12:12:52 +00:00
apnadkarni 4146364bbb Merge trunk 2024-08-23 08:39:19 +00:00
apnadkarni 60fdee0d18 Fix [33f9b4de51], [945d2387d7], [f2e924e881] - encoding character limit bugs 2024-08-23 08:32:29 +00:00
jan.nijtmans 1312c31216 Fix [a82f8b15d1]: Encoding of files stored by zipfs 2024-08-23 08:22:12 +00:00
jan.nijtmans 14c4c4478b Fix [a82f8b15d1]: Encoding of files stored by zipfs 2024-08-23 08:19:58 +00:00
apnadkarni d472e9ae55 Also fix charlimit for cesu-8 2024-08-23 08:10:20 +00:00
apnadkarni e3f4e1187f Reenable utf16 tests after fixes 2024-08-23 06:10:56 +00:00
jan.nijtmans 1d3b304f40 Oops 2024-08-22 19:01:56 +00:00
jan.nijtmans c63dae1360 Proposed fix for [a82f8b15d1]: Encoding of files stored by zipfs 2024-08-22 18:53:35 +00:00
apnadkarni 123458fa6b Proposed fixes for [945d2387d7], [f2e924e881], [33f9b4de51] 2024-08-22 18:12:15 +00:00
jan.nijtmans cb8dde6c75 Remove _ATL_XP_TARGETING from rules.vc: Windows XP is no longer supported 2024-08-22 15:26:22 +00:00
jan.nijtmans 06d3f604c9 Remove _ATL_XP_TARGETING from rules.vc: Windows XP is no longer supported 2024-08-22 15:22:04 +00:00
jan.nijtmans 403e88457f Fix failure under -singleproc 1 testing 2024-08-22 10:53:03 +00:00
jan.nijtmans 94341f9891 Fix failure under -singleproc 1 testing 2024-08-22 10:50:45 +00:00
jan.nijtmans bc503d6aad Whitespace changes 2024-08-22 10:49:13 +00:00
apnadkarni 6847982300 Merge trunk 2024-08-22 10:16:49 +00:00
apnadkarni e1cb27f660 Add Tcl_ExternalToUtf charlimit tests 2024-08-22 10:01:23 +00:00
apnadkarni 2103182d3f Merge trunk 2024-08-22 09:46:28 +00:00
apnadkarni 200cf8d7e3 Fix [304d30677a] - CESU-8 decoding 2024-08-22 09:39:09 +00:00
dkf 67b977d69e Use enums for argument indices, not 'function-scoped' defines 2024-08-22 09:01:25 +00:00
dgp 15f309ceec Fix failure under -singleproc 1 testing 2024-08-21 14:27:05 +00:00
apnadkarni c2fab9a915 Start on bug [945d2387d7] 2024-08-21 12:06:34 +00:00
apnadkarni 3b7976e305 Merge trunk 2024-08-21 09:36:34 +00:00
jan.nijtmans 418c19eafc Fix [https://core.tcl-lang.org/tclconfig/info/14f0d2c9558caf67|14f0d2c9558caf67] (same mistake in Tcl as well) 2024-08-21 08:52:29 +00:00
jan.nijtmans 81d2fa8292 (backport) Use a name for a flag, use an enum for that flag 2024-08-21 08:50:08 +00:00
jan.nijtmans 1d41830b5d Fix [https://core.tcl-lang.org/tclconfig/info/14f0d2c9558caf67|14f0d2c9558caf67] (same mistake in Tcl as well) 2024-08-21 08:38:02 +00:00
dkf e933c6d32b Use a name for a flag, use an enum for that flag 2024-08-21 08:35:19 +00:00
jan.nijtmans 0f2ef2980a Fix [https://core.tcl-lang.org/tclconfig/info/14f0d2c9558caf67|14f0d2c9558caf67] (same mistake in Tcl as well) 2024-08-21 08:34:37 +00:00
jan.nijtmans 3a9f307a47 Merge 8.7 2024-08-20 14:53:11 +00:00
jan.nijtmans 7b50a2c528 tcl::unsupported::inject is deprecated, will be removed in 9.0 2024-08-20 14:49:23 +00:00
jan.nijtmans 371c5ba634 Fix [0af9450e56]: test incr-1.31 fails 2024-08-20 13:50:32 +00:00
apnadkarni 4c88392025 Add charlimit tests for Tcl_ExternalToUtf 2024-08-20 11:26:13 +00:00
apnadkarni 07165bfdae Merge trunk 2024-08-20 11:20:39 +00:00
jan.nijtmans b99c89e7cd Merge 9.0 2024-08-19 11:47:39 +00:00
apnadkarni 57f4edf12f Add back cesu-8 fragmentation tests 2024-08-19 11:27:41 +00:00
apnadkarni 30f1fb8147 Merge trunk 2024-08-19 10:43:18 +00:00
apnadkarni 22a3d17d0d Beef up encoding tests for fragmented and split encodings 2024-08-19 08:49:26 +00:00
apnadkarni 81081c973f Deal with fragmented and split cesu-8 surrogates. 2024-08-19 04:55:49 +00:00
jan.nijtmans 33fcf01a62 Fix [6a8c5833c9]: NTFS alternate data streams (ADS) no longer readable writable 2024-08-18 22:01:25 +00:00
jan.nijtmans 2f056e3ede Fix [6a8c5833c9]: NTFS alternate data streams (ADS) no longer readable writable 2024-08-18 21:35:51 +00:00
jan.nijtmans 3a0cd9eb1f Fix [6a8c5833c9]: NTFS alternate data streams (ADS) no longer readable writable 2024-08-18 21:25:31 +00:00
jan.nijtmans f6d1057bc1 Consolidated zipfs changes/Improve bunch of error-messages 2024-08-18 20:40:50 +00:00
apnadkarni 9d36cc55cd Disable cesu tests because of bug [304d30677a] 2024-08-18 17:45:08 +00:00
apnadkarni aa3055e4f8 Start on [304d30677a]. Passes test suite but needs clean up. But see comments below.
It seems to me that the UtfToUtfProc function has jumped the shark and needs
refactoring. While at one time, CESU-8 and UTF-8 could be combined into
one function with minor differences, over the years the function has grown to
of be completely unwieldy and difficult to understand/modify. The combination
of UTF-8/CESU-8 x 3 profiles x flag combinations x possible invalid sequences
is head-spinning.

It really needs refactoring, possibly split into two or more functions, but I'm
hesitant to do that before 9.0.
2024-08-18 17:36:14 +00:00
jan.nijtmans 1c55263e36 Backport: Consolidated zipfs changes 2024-08-18 17:20:25 +00:00
dkf 022f56128b Introduce TclNewNamespaceObj() to factor out a common idiom 2024-08-18 11:14:29 +00:00
dkf 2eeb74764e Fix memory leak 2024-08-18 10:51:07 +00:00
apnadkarni 3856e96497 Add frag test for utf32 and escaped encodings 2024-08-18 10:18:03 +00:00
jan.nijtmans c86b8f0598 Merge 9.0 2024-08-17 22:51:59 +00:00
jan.nijtmans 81bcc44005 Merge 9.0 2024-08-17 22:44:47 +00:00
dkf 163e5a1dee Define TclNewNamespaceObj() to capture common idiom 2024-08-17 19:09:40 +00:00
apnadkarni 5776bec3fa Start on fragmentation tests 2024-08-17 12:52:48 +00:00
apnadkarni f3f47cefd4 More tests for Tcl_UtfToExternal and Tcl_ExternalToUtf C API, in progress 2024-08-16 17:02:48 +00:00
apnadkarni cc21c71b16 Fix zipfs doc mountdata comment 2024-08-16 01:19:00 +00:00
jan.nijtmans 171c7e3d1f While Tcl 8.7 is not final, be less strict in Tcl_InitStubs() 2024-08-15 21:32:43 +00:00
jan.nijtmans e2b7aacde0 Improve bunch of error-messages 2024-08-15 20:44:42 +00:00
jan.nijtmans 64d7cb80a0 Allow "tcl8" as library prefix (just as "tcl9" for Tcl 9) 2024-08-15 20:27:45 +00:00
jan.nijtmans 539dee14dd Improve bunch of error-messages 2024-08-15 20:23:54 +00:00
apnadkarni bc5ad3cf65 Consolidated zipfs changes. Thanks Torsten! 2024-08-15 15:26:23 +00:00
dkf cc07fc14a8 Minor optimisation in the [interp create] implementation 2024-08-15 15:09:39 +00:00
jan.nijtmans 6871783264 Fix for TIP #628: Builds with TCL_MAJOR_VERSION < 9 and without USE_TCL_STUBS is possible, just Tcl_InitStubs() cannot be used then. 2024-08-15 12:30:16 +00:00
jan.nijtmans c7b7d4cca4 Add missing TCL_OBJTYPE_V1/TCL_OBJTYPE_V2 2024-08-15 10:58:52 +00:00
apnadkarni 9789bd1def Merge trunk 2024-08-15 06:13:58 +00:00
jan.nijtmans 5eed049c6c Merge-mark 2024-08-14 20:33:45 +00:00
jan.nijtmans c18f786b9d Adding a version was a bad idea 2024-08-14 19:55:08 +00:00
jan.nijtmans 72003bbc8b It looks like "Resources/Scripts" is needed as well 2024-08-13 21:02:03 +00:00
jan.nijtmans e4d05e1969 b3 -> b4, as preparation for release 2024-08-13 14:00:18 +00:00
jan.nijtmans ca7bc5823c Fix [2f22a7364d]: cesu-8 encoding gives same result for different strings 2024-08-13 13:32:54 +00:00
jan.nijtmans 5f35d72a7b Fix [2f22a7364d]: cesu-8 encoding gives same result for different strings 2024-08-13 13:27:10 +00:00
jan.nijtmans d31d64d7b2 Merge-mark 2024-08-13 08:52:19 +00:00
jan.nijtmans 4ea0a28f62 Mark incr-1.31 testcase as "knownBug" in 8.6. Is not fixed yet on 64-bit platforms. 2024-08-13 08:51:04 +00:00
jan.nijtmans 10bda08b57 AC_PREREQ([2.69]). Fix some indenting 2024-08-13 08:44:28 +00:00
jan.nijtmans ac407dccf6 AC_PREREQ([2.69]). Fix some indenting 2024-08-13 08:36:38 +00:00
jan.nijtmans 0c67cca636 Fix indenting. Prevent Tcl 8.6 to load Tk 8.7 (when it goes final). Fix AC_PREREQ. See: [https://core.tcl-lang.org/tk/tktview/1562e10c58|1562e10c58] 2024-08-13 08:28:33 +00:00
culler fc58581c59 Fix Tk [1562e10c58]: with macOS framework build, tclsh cannot find Tk if there are multiple versions. Rebuild unix/configure with autoconf 2.72 2024-08-12 17:04:09 +00:00
culler fa47893682 Fix Tk [1562e10c58]: with macOS framework build, tclsh cannot find Tk if there are multiple versions. Rebuild unix/configure with autoconf 2.72 2024-08-12 16:57:17 +00:00
culler 80fa1dcec7 Fix Tk [1562e10c58]: with macOS framework build, tclsh cannot find Tk if there are multiple versions. Rebuild unix/configure with autoconf 2.72 2024-08-12 16:37:06 +00:00
sebres aa6fd92d62 merge point 2024-08-12 16:20:19 +00:00
sebres 87cb4eebdb merge point (no changes) 2024-08-12 16:19:26 +00:00
sebres fdfe998f97 amend to [e2f55d6060] (fix for [7179c6724cd38271]): wideint-type dependency 2024-08-12 16:12:23 +00:00
culler cc9bb0ffd3 Fix Tk [1562e10c58]: with macOS framework build, tclsh cannot find Tk if there are multiple versions. Update configure with autoconf 2.71. 2024-08-12 15:23:49 +00:00
sebres 35792bb01d merge 8.7 2024-08-12 13:34:35 +00:00
sebres 921bc8775c merge fix for [7179c6724cd38271]: compilation of incr command on wide constant offset (no overflow) + test coverage;
a bit rewritten, since 8.7 doesn't have long (32 bit) object type anymore, thus uses wide directly.
2024-08-12 13:28:14 +00:00
sebres 2c075cf9fe merge fix for [7179c6724cd38271]: compilation of incr command on wide constant offset (no overflow) + test coverage 2024-08-12 13:19:34 +00:00
sebres 7c603bb3f4 fixes [7179c6724cd38271]: compilation of incr command on wide constant offset (no overflow) 2024-08-12 13:07:24 +00:00
sebres 2c28b11277 incr.test: added coverage for bug [7179c6724cd38271] (broken compile of incr by wide2int overflow of immutable constant) 2024-08-12 13:06:21 +00:00
apnadkarni 1442d3700a Merged trunk 2024-08-12 09:54:34 +00:00
jan.nijtmans 608561d8ac Update Unicode tables to version 16 (in BETA, Unicode release will be Sept 10) 2024-08-11 20:53:39 +00:00
jan.nijtmans 200e2e6951 Update Unicode tables to version 16 (in BETA, Unicode release will be Sept 10) 2024-08-11 20:47:51 +00:00
jan.nijtmans 684e879c59 Update Unicode tables to version 16 (in BETA, Unicode release will be Sept 10) 2024-08-11 20:37:38 +00:00
apnadkarni 02237c983a Fix bug [fccb9f322f] - system encoding detection 2024-08-11 17:24:58 +00:00
apnadkarni c03cb200cd Compensate test case for XCode test config 2024-08-10 12:55:35 +00:00
apnadkarni 4fa03abc95 Also fix the non-zipfs build 2024-08-09 15:25:12 +00:00
jan.nijtmans b6fe9b2aa0 Merge-mark 2024-08-09 15:14:04 +00:00
jan.nijtmans 384a27cef6 Make realclean/hose target consistent with clean with respect to pkgs cleanup 2024-08-09 15:12:56 +00:00
jan.nijtmans 703ea11538 (cherry-pick): Make realclean/hose target consistent with clean with respect to pkgs cleanup 2024-08-09 14:59:59 +00:00
apnadkarni 77348f5b5d Merge trunk 2024-08-09 13:28:46 +00:00
apnadkarni 97f0679087 Tweak unixInit-3.2 to return encoding 2024-08-09 13:24:23 +00:00
apnadkarni 719c6ee1e5 Fix for [201c7a3aa6] - crash with non-BMP chars when encodingto stateful encodings 2024-08-09 13:02:56 +00:00
apnadkarni aa443471fb Added ICU conversion functions for testing Tcl 2024-08-09 12:42:13 +00:00
apnadkarni 85d4ab0ce5 Merge trunk 2024-08-09 05:22:29 +00:00
apnadkarni 13ee7872b7 Proposed fix for crash [201c7a3aa6] - crash on non-BMP 2024-08-09 02:53:11 +00:00
dkf e5a1a48100 Improve [2da1cb0c80] fix. 2024-08-07 09:30:52 +00:00
dkf 476c939e94 An imperfect fix for [2da1cb0c80] given that can't do the right thing 2024-08-07 09:17:31 +00:00
dkf 700bdf53e3 An imperfect fix for [2da1cb0c80] given that can't do the right thing 2024-08-07 09:06:32 +00:00
apnadkarni 33d0941446 Merge trunk 2024-08-07 05:57:45 +00:00
apnadkarni 69dc97db36 Streamline ICU symbol lookup. 2024-08-07 05:19:52 +00:00
apnadkarni d6f30e2ddf Make realclean/hose target consistent with clean with respect to pkgs cleanup 2024-08-07 03:34:46 +00:00
jan.nijtmans e98821442d Merge-mark 2024-08-06 22:01:22 +00:00
jan.nijtmans 2e730cf19d Fix some indentation 2024-08-06 21:57:56 +00:00
dkf 0125c7b696 Make varname method handle array elements better. [2da1cb0c80] 2024-08-06 21:01:05 +00:00
jan.nijtmans 6d389fbb99 Clean up of the ICU code and tests 2024-08-06 19:47:04 +00:00
dkf 47f0695e3b fix build 2024-08-06 13:15:45 +00:00
dkf 1037d74200 Force named namespaces to be made by TclOO. [154f0982f2] 2024-08-06 11:18:07 +00:00
dkf 94264e565a Force named namespaces to be made by TclOO. [154f0982f2] 2024-08-06 11:17:14 +00:00
dkf 06d8aa3047 Force named namespaces to be made by TclOO. [154f0982f2] 2024-08-06 11:15:29 +00:00
dkf 6c41478f2c merge 8.6 2024-08-06 11:12:47 +00:00
dkf fd4841e53b Implementation of almost all of oo::configurable in C, for better performance. 2024-08-06 09:16:40 +00:00
dkf f857387af9 Remove unwanted change 2024-08-06 09:14:24 +00:00
dkf 1ecfddd008 merge trunk 2024-08-06 09:13:14 +00:00
dkf 07cc666248 Fix some indentation 2024-08-06 09:11:41 +00:00
dkf 4cb0238636 merge trunk 2024-08-06 08:46:30 +00:00
dkf 0e5d20f779 Clean up of the ICU code and tests 2024-08-06 08:20:27 +00:00
dkf 207f5c59fd Tidy up the icu tests and (very basic) error case checks 2024-08-06 08:17:01 +00:00
Torsten b00dab5c2f resolution of ticket [75291b89b3] 2024-08-06 06:36:41 +00:00
Torsten 7481db101a resolution of ticket [7db9574a06] 2024-08-06 06:20:44 +00:00
jan.nijtmans 2a3718d240 Merge 8.7 2024-08-06 06:17:55 +00:00
Torsten e23e6f4044 also change zipfs.3 to match the resolution of ticket [b9f3ff8fe6] 2024-08-05 22:59:04 +00:00
jan.nijtmans a49b80610d add/document the zlib command to the set of commands in a safe interpreter 2024-08-05 22:56:16 +00:00
jan.nijtmans e92ac699c1 add/document the zlib command to the set of commands in a safe interpreter 2024-08-05 22:48:31 +00:00
jan.nijtmans 76718af202 Missed some backports from 9.0. Some indenting 2024-08-05 22:44:50 +00:00
Torsten 3585f6ebd9 resolution of ticket [b9f3ff8fe6] 2024-08-05 22:21:06 +00:00
apnadkarni 1029c41df9 VC++ build tool. Builds/tests/installs all configs. Type vctool help. 2024-08-05 16:18:42 +00:00
dkf 6d708c09cc Clean up ICU code 2024-08-05 15:12:49 +00:00
dkf a5b0e278eb merge trunk 2024-08-05 14:13:15 +00:00
dkf 1c8d9701af Use TclStringCmp() instead of strcmp() to compare Tcl_Obj values 2024-08-05 14:12:05 +00:00
dkf f8f2aa2a13 More cleaning up. 2024-08-05 14:09:59 +00:00
apnadkarni 03cdc7d3aa zipfs mount_data -> mountdata 2024-08-05 14:05:00 +00:00
apnadkarni 89a59098d1 Make zipfs inaccessible to safe interps. See bug [a47b587499] 2024-08-05 13:36:47 +00:00
Torsten 5bbf48932c add/document the zlib command to the set of commands in a safe interpreter 2024-08-05 12:49:33 +00:00
apnadkarni a10a0e2deb Fix icu loading for FreeBSD 2024-08-05 11:23:37 +00:00
jan.nijtmans ed06290315 Add format/scan modifier changes to release notes 2024-08-05 08:30:18 +00:00
Torsten d1cd7b81dc document zipfs as hidden command in interp.n 2024-08-05 08:19:09 +00:00
apnadkarni dedd36ee8f Fix indentation 2024-08-05 08:18:08 +00:00
apnadkarni 9fe40ed86b Fix ICU function names for FreeBSD 2024-08-05 08:10:42 +00:00
jan.nijtmans 0053cd2dec TK_ZIP_FILE definition to nmake makefile, to be consistent with autoconf build 2024-08-04 22:13:21 +00:00
jan.nijtmans 9bf8cbc679 TCL_ZIP_FILE/TK_ZIP_FILE definition to nmake makefile, to be consistent with autoconf build 2024-08-04 21:54:43 +00:00
apnadkarni a6e20be217 Bug [a47b587499]. zipfs in safe interps 2024-08-04 05:36:51 +00:00
apnadkarni 21e666117b Bug [fccb9f322f] - incorrect system encoding with zipfs builds 2024-08-03 12:30:05 +00:00
Torsten 0f1cf0e725 correct wrong comment about safe subcommands, don't make zipfs a package anymore (ticket [b9f3ff8fe6]) 2024-08-03 06:07:01 +00:00
Torsten 9ed379cc21 branch for tickets related to the zipfs command 2024-08-03 05:51:30 +00:00
dkf 815598b871 Factor out most property-related C code into its own file. 2024-08-02 12:03:24 +00:00
dkf f1f89714f1 Remove redundant code. 2024-08-01 19:40:04 +00:00
dkf 58881b4024 merge trunk 2024-08-01 15:45:00 +00:00
dkf 2ec6708224 Use Tcl's internal API a bit better 2024-08-01 15:38:25 +00:00
dgp 165343d07e merge release 2024-07-31 18:41:48 +00:00
dgp 8658d96971 merge trunk 2024-07-31 17:57:01 +00:00
apnadkarni 1e66c4d78d Fix gcc -Wclobbered warnings. Thanks, Gustaf 2024-07-31 09:34:12 +00:00
apnadkarni 21e29be78d Minor changelog edits - missing new commands, getdefault->getwithdefault 2024-07-31 09:15:35 +00:00
dgp 2bbab32430 Plug memory leak in format-19.4.1 2024-07-30 16:54:03 +00:00
dgp b882ae374d test hygiene 2024-07-30 15:29:12 +00:00
dgp a3bb0eb585 merge trunk and dup test names 2024-07-30 15:11:17 +00:00
dgp 6ddf54f3fd merge 8.7 2024-07-30 14:52:36 +00:00
dgp 702a53f5f3 merge 8.6 2024-07-30 14:50:53 +00:00
dgp 18bed14255 continuity of test names 2024-07-30 14:50:07 +00:00
oehhar c4b1e61816 [3adf9e3a] Document argument bufferSize of Tcl_ZlibInflate 2024-07-30 14:27:49 +00:00
oehhar 26c2801aab [3adf9e3a] Document argument bufferSize of Tcl_ZlibInflate 2024-07-30 14:26:07 +00:00
oehhar 112d2f3056 [3adf9e3a] Document argument bufferSize of Tcl_ZlibInflate 2024-07-30 14:18:52 +00:00
dgp 8565dab442 merge trunk 2024-07-30 14:08:19 +00:00
apnadkarni c3399320ec Minor fix - Add TCL_ZIP_FILE definition to nmake makefile to be consistent with autoconf build 2024-07-30 10:22:11 +00:00
apnadkarni 1a360a3d14 Add foreachLine, readFile, writeFile to NAMES so they show up in html index 2024-07-29 16:17:03 +00:00
sebres d76149d40f merge 8.7 2024-07-29 11:41:40 +00:00
sebres c74b92032a doc/clock.n: cherry-pick from apn-clock-now, [cd257619] Change -now to now in clock ensemble 2024-07-29 11:40:20 +00:00
dkf b965690283 Factor out CmdFrame init and fix bug with body line numbers 2024-07-29 08:58:56 +00:00
apnadkarni 327092fc47 Merge 8.7 - Fix [7d5f1c1308] - zipfs mkzip error on Windows dotfiles 2024-07-29 08:28:37 +00:00
apnadkarni cbf336836b Fix [7d5f1c1308] - zipfs mkzip error on Windows dotfiles 2024-07-29 08:08:11 +00:00
sebres b77c4cdc7a merge 8.7 2024-07-28 19:47:02 +00:00
sebres a97bdb56bc closes [cd25761979]: clock format and clock add will accept now as clock value (value -now retained to compat reasons to earlier versions and tclclockmod, undocumented at the moment) 2024-07-28 19:44:23 +00:00
sebres 97e526fae6 merge 8.6 2024-07-28 19:25:33 +00:00
sebres 5f3c32b889 tests/cmdAH.test: amend to [fd91b0ca09cb171f] - fixed typos 2024-07-28 19:24:02 +00:00
oehhar 8791e7f364 Correct syntax error in doc/clock.n 2024-07-26 08:39:33 +00:00
dgp 12f99478e8 typo in documentation escape sequence 2024-07-25 18:49:38 +00:00
apnadkarni aff27e6b0a Merge trunk 2024-07-25 02:53:00 +00:00
dgp b46034e0a5 Create release branch 2024-07-24 17:33:54 +00:00
apnadkarni d34bfe022b Add missing documentation for -validate option to clock scan 2024-07-23 17:10:31 +00:00
dkf 25671e43ad merge trunk 2024-07-23 08:47:28 +00:00
dkf e8ff605ad5 Improve in-code doc of some fields of structs in tcl.h and tclInt.h 2024-07-23 08:45:34 +00:00
dgp 95a02c4270 Missing guard against NULL interp. 2024-07-22 17:43:28 +00:00
apnadkarni 52c300bf22 Minor doc correction to mcloadedlocales syntax 2024-07-22 11:10:10 +00:00
dkf dc1bc43683 Reduce number of allocations on property access path. 2024-07-21 16:43:47 +00:00
dkf ebe53cb73a Tidying up the properties code 2024-07-21 14:14:42 +00:00
dkf d1d60243ce Make the [property] definition itself go to C 2024-07-20 21:42:43 +00:00
dkf 50b2e426aa Improve some documentation (for myself) 2024-07-19 09:03:26 +00:00
dkf 02624d1349 Slightly simpler script 2024-07-19 08:52:07 +00:00
apnadkarni 8db83bf0af Merge trunk 2024-07-19 07:08:28 +00:00
dkf ca664dbbb7 Improve some comments 2024-07-18 16:03:53 +00:00
dkf 45c7196b90 Correction to error code 2024-07-18 15:43:48 +00:00
dkf e4b60844a8 Fix small bug 2024-07-18 15:38:06 +00:00
dkf 66fbdb3b55 Merge trunk 2024-07-18 15:32:43 +00:00
dkf a6b118eb89 Merge 8.7 2024-07-18 14:57:12 +00:00
dkf d939948efd Merge 8.6 branch 2024-07-18 14:53:18 +00:00
oehhar a4edd56679 [91b3a5bb14] msgcat method: catch oo resolution to at least not to fail 2024-07-18 08:49:25 +00:00
oehhar b6d9f17684 [91b3a5bb14] msgcat method: catch oo resolution to at least not to fail 2024-07-18 08:44:57 +00:00
oehhar ceb023e374 [91b3a5bb14] msgcat method: same changes as in branch "ticket-91b3a5bb14-msgcat-oo-method", but based on core-8-branch 2024-07-18 08:42:24 +00:00
sebres a746ea9e99 merge 8.7 2024-07-16 21:16:16 +00:00
sebres ffe4640cc1 clock: better fix for validation check for scanned day of week in input (normalized input value after scan, Sun is always 7 now);
more tests for valid days of weeks covering also format scan with different weekday formats (%a, %u, %w)
2024-07-16 21:14:40 +00:00
sebres 2cec171aac merge 8.7 (clock: fix validation check for scanned Sunday) 2024-07-16 19:18:56 +00:00
sebres 71a57bb694 clock: fix validation check for scanned Sunday (missing % 7 by compare) 2024-07-16 19:17:05 +00:00
sebres 46198dca4d merge 8.7 2024-07-16 17:45:05 +00:00
sebres 3ce47c5613 clock: fixed regression [3ee8f1c2a785f4d8]: time overflow (without validation) must cause day increment; clock.test: more regression tests 2024-07-16 17:42:58 +00:00
sebres 2b40376fa3 clock.test: more regression tests: clock-46.[56] cherry-picked from 8.7, clock-46.7 to illustrate regression [3ee8f1c2a785f4d8] (8.6 is not affected) 2024-07-16 16:24:02 +00:00
sebres efe6f86f61 merge 8.7 2024-07-16 15:06:34 +00:00
sebres c0ed1e355f amend to [ae09f6b190]: fixes SF [a7b7dd7927f3d56b] - LoadCleanupProc can be invoked with NULL first pointer (empty list on interp deletion if unloaded earlier) 2024-07-16 14:54:06 +00:00
apnadkarni ca7a5cdb07 Minor doc change - remove reference to XP and Vista 2024-07-16 12:06:13 +00:00
dkf 7e796a8a32 Make [self] work inside [$obj eval]. [91b3a5bb14e6e8ae] 2024-07-15 14:29:13 +00:00
sebres 1554fab2fc merge 8.7 (fixes memory leak [ae09f6b190ceec31]) 2024-07-15 01:21:13 +00:00
sebres a1bb7d4507 fixes memory leak [ae09f6b190ceec31]: properly unload and free InterpLibrary if interpreter gets deleted 2024-07-15 01:16:23 +00:00
dkf 7a5fbcdfb9 Stop variable from disappearing by accident when referred to by name. [74b6110204] 2024-07-14 20:07:13 +00:00
dkf b733648e85 Stop variable from disappearing by accident when referred to by name. [74b6110204] 2024-07-14 20:06:39 +00:00
dkf 7cb086504f Stop variable from disappearing by accident when referred to by name. [74b6110204] 2024-07-14 19:52:41 +00:00
sebres a9812bfa3d fixes [0e4b7fce57]: [info vars] strictly follows TIP #278 and doesn't resolve global vars in non-global NS anymore (without extra global pattern) 2024-07-14 19:32:28 +00:00
sebres 1d1e5f06ab undo mainline tests, tests of branch moved to replace them 2024-07-14 19:25:12 +00:00
sebres cf4c5d3172 merge trunk 2024-07-14 19:23:01 +00:00
sebres e607a8cb18 merge 8.7, actual state of [info vars], before fix [0e4b7fce57] global vars still resolved in namespace 2024-07-14 19:20:45 +00:00
sebres d4a730f629 merge 8.6 2024-07-14 19:16:41 +00:00
sebres ed61508601 [info vars] test coverage for global vars resolve 2024-07-14 19:14:26 +00:00
sebres 034fb5297b amend to [3d8bf31bdc], ultimately fixes [0e4b7fce57]: [info vars] should not resolve global vars in namespace by simple pattern too (see info-19.8 test);
added tests covering the behaviour
2024-07-14 19:03:38 +00:00
sbron 4447bb0099 Fix [0e4b7fce57]: Running [info vars] in a namespace returns global variables. 2024-07-14 13:49:07 +00:00
apnadkarni 052cdafdb7 Bug [cfdf80a2efc6] - zlib checksum is negative 2024-07-11 15:17:23 +00:00
jan.nijtmans 2d20997415 Optimization: two more objTypes which always have length 1 when viewed as a list 2024-07-10 09:52:02 +00:00
jan.nijtmans 9d60adef42 [0439e1e1a3]: Slow detection of illegal expr argument. Handle more of the same. 2024-07-09 13:37:59 +00:00
jan.nijtmans ee2210c7f1 Fix [0439e1e1a3]: Slow detection of illegal expr argument 2024-07-09 08:22:43 +00:00
jan.nijtmans fbf5873772 Don't bother unrelated error-messages 2024-07-09 08:19:04 +00:00
jan.nijtmans 26cf410a37 Remaining can't -> cannot changes 2024-07-08 16:32:11 +00:00
jan.nijtmans 25fa11235b first/second -> left/right and can't -> cannot 2024-07-08 13:54:08 +00:00
jan.nijtmans bf2bfb1578 Add possible "first"/"second" to error-message (thanks, rmax!) 2024-07-08 11:02:13 +00:00
jan.nijtmans 0d7fe7ab92 Additional testcases (not only testing for lseq, but for list and dict as well) 2024-07-08 09:15:14 +00:00
jan.nijtmans d3895a98d5 Handle dict in expr error-message as well 2024-07-07 13:58:45 +00:00
jan.nijtmans 9cefe46131 Improvement: If objPtr can be represented as a list and has >1 elements, give a slightly different error-message which doesn't contain the string representation any more: this string representation could be long 2024-07-07 13:40:06 +00:00
apnadkarni ed4a2e50e3 Experiment with normalization 2024-07-06 12:53:08 +00:00
jan.nijtmans 2af3a75882 Possible fix for [0439e1e1a3]: Slow detection of illegal expr argument 2024-07-05 10:00:58 +00:00
jan.nijtmans 48266ec967 "utf32string" and "wideInt" types are gone in 9.0 2024-07-05 05:54:59 +00:00
jan.nijtmans a72807d9ff TclGetStringFromObj() cannot be used here 2024-07-03 15:36:44 +00:00
jan.nijtmans cae2b50665 Merge 8.7 2024-07-03 13:28:34 +00:00
jan.nijtmans f4778483c5 Merge 8.6 2024-07-03 13:09:33 +00:00
jan.nijtmans 2e6ac16644 Tcl_RegisterObjType() in alphabetical order. Backport some formatting and type-casts from 8.7/9.0 2024-07-03 12:34:15 +00:00
sebres 3769dc8162 merge 8.7 2024-07-02 14:39:06 +00:00
sebres b095700d4c merge 8.6 2024-07-02 14:38:06 +00:00
sebres 537494be81 info frame: restored return {type precompiled} in case of no frame information; see [0de6c1d79cfba2ea] for description 2024-07-02 14:36:59 +00:00
sebres cc0e34a74c merge 8.7 2024-07-02 12:41:10 +00:00
sebres f4aa862508 merge 8.6 2024-07-02 12:38:23 +00:00
sebres f66787a44e fix crash [0de6c1d79c] more consistently (an error "bad level" for info instead of artifical dummy info) 2024-07-02 12:36:17 +00:00
sebres 344ec76962 Fix for [0de6c1d79c] crash (cherry-picked from trunk) 2024-07-02 12:22:24 +00:00
apnadkarni 469b20f632 Fix for [0de6c1d79c] crash. 2024-07-02 11:17:53 +00:00
sebres b3a4cff38f further attempt to fix [fd91b0ca09cb171f] (check whether some disk/driver may have 2038 problem) 2024-07-01 20:04:27 +00:00
jan.nijtmans 47e2064522 Fix [5fca83d78c]: [encoding system] is wrong in an ISO-8859-1 locale 2024-07-01 19:39:46 +00:00
jan.nijtmans 6e5a44be9a Fix [5fca83d78c]: [encoding system] is wrong in an ISO-8859-1 locale 2024-07-01 19:29:35 +00:00
jan.nijtmans 778f45c534 Fix [5fca83d78c]: [encoding system] is wrong in an ISO-8859-1 locale 2024-07-01 19:22:00 +00:00
apnadkarni 1f8059e719 Traverse coroutine frames before null pointer check 2024-07-01 14:56:42 +00:00
apnadkarni 40ca1692e8 Add test for crash 2024-07-01 13:46:33 +00:00
apnadkarni dfa208bc23 Merge trunk 2024-07-01 13:28:42 +00:00
oehhar e30fcdf4ba "encoding binary removal": I think, it is better to speak about a removed encoding alias, instead of an encoding. 2024-06-30 19:28:59 +00:00
jan.nijtmans a16aa7353b Update changes.md 2024-06-30 17:47:22 +00:00
jan.nijtmans c4a863d303 Merge 9.0 2024-06-30 15:28:31 +00:00
jan.nijtmans b69f52f25f macos-11 is no longer available on GITHUB, so switch to macos-12/macos-14 2024-06-30 15:15:15 +00:00
jan.nijtmans 076bec1db9 macos-11 is no longer available on GITHUB, so switch to macos-12/macos-14 2024-06-30 14:53:34 +00:00
jan.nijtmans 570e6997db macos-11 is no longer available on GITHUB, so switch to macos-12 2024-06-30 14:45:46 +00:00
jan.nijtmans 4e109ef2cc Add "chan isbinary" to changes.md 2024-06-30 14:29:33 +00:00
jan.nijtmans b23881f5d5 Add "chan isbinary" to changes.md 2024-06-30 14:22:16 +00:00
jan.nijtmans a092f8bf5c Merge 9.0 2024-06-30 14:09:29 +00:00
jan.nijtmans ad83af0053 Fix docs for tcl::tm::roots - takes a single argument 2024-06-30 10:42:29 +00:00
jan.nijtmans 6e2717b4db TIP 699: Eliminate encoding alias "binary"; provide introspection for binary channels 2024-06-30 10:35:53 +00:00
apnadkarni 21723190e5 Merge 8.6 - Fix docs for tcl::tm::roots - takes a single argument. 2024-06-29 11:55:25 +00:00
apnadkarni ad497e8cd5 Fix docs for tcl::tm::roots - takes a single argument. 2024-06-29 11:51:32 +00:00
jan.nijtmans 2b28072dd3 Fix "chan isbinary" documentation for 8.7 2024-06-28 16:13:57 +00:00
jan.nijtmans 0015fdd61a Add "chan isbinary" command. Part of TIP #699, meant for 8.7 2024-06-28 16:10:01 +00:00
sebres de17097916 merge 8.7 2024-06-28 08:55:12 +00:00
sebres fe200c4760 merge 8.7 2024-06-28 08:51:54 +00:00
jan.nijtmans 2bd6f328b3 Merge 9.0 2024-06-27 22:28:08 +00:00
jan.nijtmans 811b044eb5 Merge 8.7. Random indent fixes 2024-06-27 21:50:59 +00:00
jan.nijtmans b99f44e2b6 (backport) Add tcl::unsupported::icu command (why not!) 2024-06-27 13:45:10 +00:00
sebres 505740c99d cmdAH.test: strengthening time64bit constraint (try to fix test failures [fd91b0ca09cb171f]), always prefer size of st_mtime if testsize available 2024-06-27 10:20:35 +00:00
apnadkarni 0d26404eee Add tcl::unsupported::icu command 2024-06-27 06:32:58 +00:00
jan.nijtmans f3f4b0ac24 Remove empty "fconfigure" commands in testcases. Some indenting in *.decls files 2024-06-26 12:02:46 +00:00
jan.nijtmans b0b78fdf11 Some indenting 2024-06-26 11:50:03 +00:00
apnadkarni ba3e9eb539 Merge trunk 2024-06-26 03:14:37 +00:00
jan.nijtmans 45e7356eb3 Add "chan isbinary" for checking whether a _channel_ is binary 2024-06-24 13:14:30 +00:00
jan.nijtmans c50438f01b TIP #699: Remove support for encoding aliases {} and "binary". 2024-06-24 13:11:46 +00:00
jan.nijtmans 623d105a75 Eliminate "-encoding binary" in all test-cases 2024-06-24 12:06:18 +00:00
jan.nijtmans aad4b6527f Eliminate "-encoding binary" as much as possible in testcases 2024-06-24 11:35:42 +00:00
jan.nijtmans fd0f5b4799 Eliminate "-encoding binary" in favour of "-translation binary". Final proposal. 2024-06-24 08:44:16 +00:00
jan.nijtmans eb922c8eb5 Add "chan isbinary" for checking whether a _channel_ is binary. 2024-06-23 20:26:43 +00:00
jan.nijtmans 01bcdd0150 Test cases: no unneccessary "chan configure" statements, remove now obsolete comment 2024-06-23 20:09:46 +00:00
jan.nijtmans 0f0efcd41e Since -eofchar {} is the default already, no need to specify this over and over again in testcases 2024-06-22 23:29:06 +00:00
jan.nijtmans ac1f3f7a09 Revise use of "-translation binary" in testcases: Use it where useful, don't use it any more where misleading 2024-06-21 20:37:14 +00:00
jan.nijtmans ef86c6216a Revise use of "-translation binary" in testcases: Use it where usefull, don't use it any more where misleading 2024-06-21 17:08:53 +00:00
apnadkarni cebd66333b Add missing ucm2tests to generate ICU based test cases 2024-06-21 16:00:43 +00:00
jan.nijtmans f82e67e7bf Revise use of "-translation binary" in testcases: Use it where usefull, don't use it any more where misleading 2024-06-21 14:44:17 +00:00
jan.nijtmans 5b000e5e2a Eliminate "-encoding binary" in favour of "-translation binary". Meant for investigation what would happen. 2024-06-21 11:53:27 +00:00
apnadkarni 5db876c5b1 Fix test constraint 2024-06-21 10:52:24 +00:00
jan.nijtmans 5c63c6eb30 Fix examples, using "-translation binary" correctly in stead of "-encoding binary" 2024-06-21 09:30:15 +00:00
jan.nijtmans 43044c4c6f Fix examples, using "-translation binary" correctly in stead of "-encoding binary" 2024-06-21 09:27:00 +00:00
jan.nijtmans e715bc67da Fix wrong example: Should be "-translation binary" here, not "-encoding binary" 2024-06-21 09:17:17 +00:00
jan.nijtmans 7c6a26e4d9 (backport) Update string is integer docs as per TIP 514. 2024-06-21 07:11:30 +00:00
apnadkarni 3766d5bd68 Update string is integer docs as per TIP 514. 2024-06-21 06:43:08 +00:00
jan.nijtmans 17ba6e689b Remove dead code / outdated comment 2024-06-20 18:47:18 +00:00
jan.nijtmans 32001dc2d5 Merge 9.0 2024-06-20 18:22:43 +00:00
apnadkarni 9038be7168 Merge trunk 2024-06-20 07:44:32 +00:00
apnadkarni 225ef80434 Add basic tests 2024-06-20 07:42:38 +00:00
jan.nijtmans 9c1dcb7e7b Fix [7be97a6859]: Reviewing chan.n changes 2024-06-19 16:39:09 +00:00
jan.nijtmans b6c5d8274c Fix [7be97a6859]: Reviewing chan.n changes 2024-06-19 16:36:12 +00:00
jan.nijtmans 4c3eee2521 Remove TclNREvalList(), it was only used in unsupported::inject, which is now gone 2024-06-19 15:34:25 +00:00
sebres bf089fa487 merge 8.7 2024-06-19 12:31:28 +00:00
sebres ec4858f861 merge 8.6 2024-06-19 12:29:08 +00:00
sebres f8c6b1b2f4 fixes [1095bf7f756f9aed]: safe ensemble commands will be compiled now in safe interp too 2024-06-19 12:26:42 +00:00
jan.nijtmans afa9e11fbb Fix [53ac20f94b]: namespace(n) documentation doesn't reflect TIP#278 changes 2024-06-19 11:04:59 +00:00
jan.nijtmans 072812c725 Merge-mark 2024-06-19 11:01:59 +00:00
jan.nijtmans 9c1ca6af76 Document %z and %t size modifiers for 'format' and 'scan' 2024-06-19 10:58:14 +00:00
apnadkarni 6292ff68f4 TIP 696 - partition return codes between core and non-core 2024-06-19 10:55:59 +00:00
jan.nijtmans 92fa8abace TIP #697: 32-bit truncation in format and scan (let's gain some time) 2024-06-19 10:32:39 +00:00
apnadkarni 044a1745e4 Add back tests for inject crashes adapted for coroinject 2024-06-19 10:04:54 +00:00
apnadkarni 6a9cecba2f Remove tcl::unsupported::inject 2024-06-19 09:51:06 +00:00
apnadkarni a278b21eff Make note in changes.md about removal of inject command 2024-06-19 09:33:30 +00:00
apnadkarni 07d8b09e4f Merge trunk 2024-06-19 09:32:23 +00:00
jan.nijtmans 9e88eb9b48 Merge trunk 2024-06-19 09:25:51 +00:00
apnadkarni 67c30ff0b5 Handle ambiguous ICU encoding name aliases 2024-06-19 03:13:52 +00:00
apnadkarni 29d2d2d375 Add missing files 2024-06-19 02:25:29 +00:00
apnadkarni f91e645a10 Unsupported ICU interface 2024-06-19 02:22:41 +00:00
jan.nijtmans 7386a38e17 Fix some more indenting 2024-06-18 22:41:30 +00:00
jan.nijtmans 2d6b4ee950 Merge 8.6 2024-06-18 22:27:47 +00:00
jan.nijtmans 1e9345e974 Backport some code cleanup from 8.7/9.0. Fix indenting 2024-06-18 22:07:14 +00:00
apnadkarni 1e2372355f Merge trunk 2024-06-18 16:38:43 +00:00
jan.nijtmans aca8bd20f1 Implement %z/%t/%q/%j size modifiers for 'scan'. Part of TIP #697 2024-06-17 18:52:25 +00:00
apnadkarni fb0f6d9416 Remove tcl::unsupported::inject 2024-06-17 16:47:44 +00:00
jan.nijtmans 8afc6eacf9 Implement %z/%t/%q/%j size modifiers for 'scan'. Part of TIP #697, which is suitable for 8.7 too. 2024-06-17 14:54:07 +00:00
jan.nijtmans 5b97aedd0b Change "channelId" to "channel" in documentation, error-handling and testcases 2024-06-17 13:43:54 +00:00
dkf 3013ff330e Merge 8.7 2024-06-16 20:37:46 +00:00
dkf ba6d47e73b Some cleaning up of the internals of the implementation of ensembles. 2024-06-16 19:57:40 +00:00
dkf e66492d0fd Better comments. 2024-06-16 17:28:13 +00:00
dkf 6dc02ef2cc Some more improvements 2024-06-16 15:12:28 +00:00
dkf e8a003f741 Cleaner ensemble innards 2024-06-16 13:39:51 +00:00
dkf fb74fa4d32 Fix non-standard indentation pattern 2024-06-14 18:44:09 +00:00
sebres 6e35e60556 typo in comment 2024-06-13 16:13:22 +00:00
sebres 381d344fba small amend cleaning var in test 2024-06-13 16:00:41 +00:00
sebres 2556341273 fixes [1095bf7f756f9aed]: safe ensemble commands will be compiled now in safe interp too 2024-06-13 14:39:03 +00:00
sebres a0aae59b0a test illustrating [1095bf7f756f9aed]: safe ensemble commands must be compiled in safe interp 2024-06-13 14:37:30 +00:00
jan.nijtmans b1d37d0ae9 Proposed fix for [53ac20f94b]: namespace(n) documentation doesn't reflect TIP#278 changes 2024-06-13 13:12:11 +00:00
jan.nijtmans dfca368a1b Fix [1d26e580cf]: safe interp can't source files with BOM 2024-06-13 12:00:18 +00:00
jan.nijtmans 32d2abb7a3 Minor doc fix 2024-06-13 11:59:25 +00:00
jan.nijtmans b22d2a91f3 Fix [1d26e580cf]: safe interp can't source files with BOM 2024-06-13 10:53:08 +00:00
jan.nijtmans d121b99694 Fix [1d26e580cf]: safe interp can't source files with BOM 2024-06-13 10:52:02 +00:00
jan.nijtmans f576c749e2 Use tabs for indenting in stead of 8 spaces. Unbreak clang build 2024-06-13 09:51:00 +00:00
jan.nijtmans 5d8356eead Merge 8.7 2024-06-13 09:49:09 +00:00
jan.nijtmans fa45377e7c Unbreak clang build: tclCmdIL.c:4063:2: error: expected expression
int keyword;
        ^
2024-06-13 09:05:33 +00:00
jan.nijtmans e80a9647f5 Use tabs for indenting in stead of 8 spaces 2024-06-13 08:57:12 +00:00
dkf 0e43541e97 Fix some indentation/wrapping for style 2024-06-12 20:24:40 +00:00
sebres bd02a51914 merge 8.7 (several conflicts resolved) 2024-06-12 20:12:44 +00:00
sebres aeb50c05d3 ultimately closes [f05f5ef759c1f7f9]: since bigints are not supported yet, trying to use them as series parameters would cause "integer value too large to represent" unless implemented. 2024-06-12 19:54:34 +00:00
sebres e2a30b162b merge 8.7 2024-06-12 19:17:01 +00:00
sebres c0602af1ad speed-up lseq (with expr-args) a bit, as well as avoid shimmer for compiled expressions 2024-06-12 19:11:29 +00:00
sebres 2fbd19a32f more fixes for [f05f5ef759c1f7f9]: don't swallow expr errors, further code review and simplification 2024-06-12 19:01:35 +00:00
jan.nijtmans e4a0bd4313 Move BOM handling a few lines later 2024-06-12 13:40:18 +00:00
sebres 637c16ab27 lseq: more tests 2024-06-12 12:23:37 +00:00
jan.nijtmans aacd5eef2d Fix [1d26e580cf]: safe interp can't source files with BOM.
(init.tcl has a BOM now, for testing purposes. Don't merge this to core-8-6-branch!)
2024-06-12 12:10:50 +00:00
jan.nijtmans d25acf4fe1 Tcl_AppendResultVA() is gone in Tcl 9.0 2024-06-12 11:00:47 +00:00
jan.nijtmans 5e76fd6545 Use "int fd" for file descriptors, like everywhere else in the code 2024-06-12 10:52:43 +00:00
jan.nijtmans 874969c752 Merge 8.6 2024-06-12 10:50:02 +00:00
jan.nijtmans f6f180df58 Add METHOD headers to documentation. Other doc cleanup, backported from 8.7/9.0 2024-06-12 09:59:13 +00:00
jan.nijtmans 7ed586b080 use "int fd" for file descriptors, like everywhere else in the code. Mark some parameters as unused 2024-06-12 09:31:22 +00:00
sebres eebadfb7f0 merge 8.7 2024-06-12 00:57:48 +00:00
sebres 9b6e7e0f64 list.perf.tcl: added performance regression tests for lseq (illustrates fix for [f05f5ef759c1f7f9], as well as difference of non-compiled vs. compiled expr) 2024-06-12 00:53:59 +00:00
sebres eab5495782 merge 8.7 (fix for [f05f5ef759c1f7f9]) 2024-06-12 00:17:18 +00:00
sebres 76a9c2a69c lseq: code review, several fixes for [f05f5ef759c1f7f9], unneeded code removed, etc:
1. avoid duplicative evaluation of expressions
2. fixes 40x-50x performance issue using operators
3. fixes inconsistent handing by round-able to integer double
2024-06-12 00:09:22 +00:00
sebres ecf084113d tests illustrating bug [f05f5ef759c1f7f9], incorrect behavior of lseq 2024-06-12 00:03:54 +00:00
jan.nijtmans a631afc83c channelName -> channelId, for consistancy with other *.n manpages 2024-06-11 22:12:32 +00:00
jan.nijtmans 917817da8e Revert [eb627bda27] from 9.0, will be put in a separate branch for review 2024-06-11 20:37:08 +00:00
jan.nijtmans 242c59632a No need to refer to Tcl 8.6, in some places 2024-06-11 14:16:27 +00:00
jan.nijtmans 7dfdaba3c3 Various doc backports from 9.0 2024-06-11 13:36:43 +00:00
jan.nijtmans 4cc738ffc6 There are twelve functions in Tcl_ObjType now. 2024-06-11 12:41:18 +00:00
jan.nijtmans 01848f3649 Backported a littttttle bit too much 2024-06-11 12:38:28 +00:00
jan.nijtmans 2b8b6d3d0e Merge 8.7 2024-06-11 12:17:44 +00:00
jan.nijtmans b67bee2a5e Backport: Another round of small fixes, especially spelling errors... 2024-06-11 12:13:54 +00:00
jan.nijtmans 7546332ccf Merge-mark 2024-06-11 10:16:02 +00:00
jan.nijtmans 24310a4ca9 Merge 8.7. Remove "-profile strict" from examples, since it's already the default. 2024-06-11 10:01:26 +00:00
jan.nijtmans 81eb74be3a Add missing "METHOD profile", some paragraph markers and formatting in examples (last one comes from "encoding-for-review" branch) 2024-06-11 09:57:49 +00:00
jan.nijtmans 1cb534fcd6 Add some METHOD headers 2024-06-11 09:49:35 +00:00
jan.nijtmans 98ee90f560 Backout [92ee031f32ea98ba]: "Make the documentation of [encoding] more concise and readable". Will be put in a separate review branch 2024-06-11 09:30:12 +00:00
jan.nijtmans c964dc0005 Backout [71bfc6e708f641af]: "Make the documentation of [encoding] more concise and readable". Will be put in a separate review branch. 2024-06-11 09:26:54 +00:00
jan.nijtmans 6dac6f9784 There are no "two triplets" any more in 9.0 2024-06-11 09:14:21 +00:00
jan.nijtmans 1a932ea88a Backout [0ef72df401df2216]: "Tighten up SaveResult.3". Will be put in a separate review for 9.0 2024-06-11 09:06:57 +00:00
jan.nijtmans ef2e5e5a2e Put back Tcl_SaveResult, Tcl_RestoreResult, Tcl_DiscardResult in doc header (accidently removed) 2024-06-11 09:00:27 +00:00
jan.nijtmans 79e41bf36d Backout [0ef72df401df2216]: "Tighten up SaveResult.3". Will be put in a separate review for 9.0 2024-06-11 08:14:15 +00:00
jan.nijtmans 40d7838daa Merge 9.0 2024-06-11 07:52:38 +00:00
jan.nijtmans 4761143bfb Merge-mark 2024-06-11 07:31:40 +00:00
jan.nijtmans 2f243a60b5 Backport: Consolidate channel documentation. close, puts etc. manpages now just reference chan (remainder) 2024-06-11 07:30:49 +00:00
jan.nijtmans 473e722767 Backport: Consolidate channel documentation. close, puts etc. manpages now just reference chan
(chan.n part only)
2024-06-10 22:53:24 +00:00
jan.nijtmans 06cef23e96 Merge-mark 2024-06-10 15:27:45 +00:00
jan.nijtmans e6843a795b Make installManPage more robust against newlines. Backported from 8.7 2024-06-10 15:25:23 +00:00
jan.nijtmans 84e40c54d2 TIP #494 changes were not fully incorporated in the documentation, so let's correct that. 2024-06-10 13:06:57 +00:00
jan.nijtmans 222661a07e Revert [8dba618fe6b6f8bb] from 9.0, will be put in a separate review for 9.0. 2024-06-10 11:22:49 +00:00
jan.nijtmans a0f63ab1d9 Merge-mark 2024-06-10 11:08:50 +00:00
jan.nijtmans 236a947fa7 Revert [eb627bda27] from 8.7, will be put in a separate review for 9.0. 2024-06-10 11:07:59 +00:00
jan.nijtmans 591f75c430 Merge-mark 2024-06-10 10:21:03 +00:00
jan.nijtmans 0cd09cbff9 Merge 8.6 2024-06-10 10:19:43 +00:00
jan.nijtmans 9fe1ca1dea Missing verb in SetResult.3 2024-06-10 10:12:38 +00:00
apnadkarni 90d820d0be Fix decimal rep of TCL_CODE_USER_MAX 2024-06-10 02:06:37 +00:00
apnadkarni 7673d25a08 Merge trunk 2024-06-09 16:43:57 +00:00
apnadkarni 5b8c3257ff Update to new TIP revision 2024-06-09 16:35:47 +00:00
jan.nijtmans 08ef0c92bd Merge-mark 2024-06-09 16:31:48 +00:00
jan.nijtmans ac5913c825 (cherry-pick) Put ClockFmtScnStorageHashKeyType (and some more) in read-only memory 2024-06-09 16:19:58 +00:00
dkf cb1ad40259 Another record that ought to be read-only 2024-06-09 14:06:20 +00:00
dkf a2d8e9fb32 Put ClockFmtScnStorageHashKeyType in read-only memory 2024-06-09 12:13:40 +00:00
dkf 46032e05df Simpler commenting of Tcl_ChannelType instances; make zip channel type const 2024-06-09 10:33:06 +00:00
jan.nijtmans dfe7d9a619 Fix [d5b45c23f4]: file tildeexpand and file home not disabled in safe base interpLeaf check. 2024-06-07 12:20:09 +00:00
jan.nijtmans dc3be02736 Fix [d5b45c23f4]: file tildeexpand and file home not disabled in safe base interp 2024-06-07 12:18:50 +00:00
jan.nijtmans 078e78572f Merge 9.0 2024-06-07 11:31:29 +00:00
jan.nijtmans ba13c1f02f Fix CFLAGS=-ftrapv build 2024-06-07 11:26:32 +00:00
jan.nijtmans 74090312ff Fix for [d5b45c23f4]: file tildeexpand and file home not disabled in safe base interp 2024-06-07 10:32:05 +00:00
jan.nijtmans b5e829c006 Fix [57daa91ea]: Tcl_GetIntForIndex handling of n-m (m > n). With testcases. 2024-06-06 10:39:31 +00:00
apnadkarni c5dbe187de Fix one int -> Tcl_Size 2024-06-06 10:03:52 +00:00
jan.nijtmans 1ad7ab1f6f Fix [57daa91ea]: Tcl_GetIntForIndex handling of n-m (m > n). With testcases. 2024-06-06 09:07:44 +00:00
dkf 8635b3e844 A clearer way of writing what parity options are available 2024-06-05 14:12:19 +00:00
jan.nijtmans 9d4f0b95eb More of the same: Space before tab is extremely unlikely to be correct indentation pattern. 2024-06-05 13:10:11 +00:00
apnadkarni 4fa54adbde TIP 696 #defines and docs 2024-06-04 16:39:14 +00:00
dkf 514638fd75 Make function definitions have right argument style 2024-06-04 15:54:35 +00:00
dkf 14e9a4e0bd Space before tab is an extremely unlikely to be correct indentation pattern 2024-06-04 15:35:14 +00:00
jan.nijtmans ba5bcc38db Let's review the SaveInterpState.3 changes in 8.7/trunk (which were never backported to 8.6) 2024-06-04 12:44:42 +00:00
jan.nijtmans 2a0402cd1a Let's review the chan.n changes in 8.7/trunk (which were never backported to 8.6) 2024-06-04 12:19:02 +00:00
jan.nijtmans 746ee5ac2d Merge 9.0 2024-06-04 11:36:07 +00:00
jan.nijtmans 85fb2fa3c1 Let's review the encoding.n changes in 8.7/trunk (which were never backported to 8.6) 2024-06-04 11:03:36 +00:00
jan.nijtmans 1719e80d01 Remove outdated parts of documentation 2024-06-03 20:21:34 +00:00
jan.nijtmans 8bdd215c81 Remove outdated parts of documentation 2024-06-03 20:16:03 +00:00
jan.nijtmans 89dca6779f typo 2024-06-03 20:06:48 +00:00
jan.nijtmans 8b39f58d80 Let's review the SetResult.3 changes in trunk (which were never backported to 8.6/8.7) 2024-06-03 12:02:15 +00:00
jan.nijtmans 4643a1db20 Use (char *)NULL as end sentinel in documentation (as Linux man-pages already do too, e.g. [https://linux.die.net/man/3/tcl_appendresult]) 2024-06-03 11:47:04 +00:00
jan.nijtmans 272872375d Merge 8.6 2024-06-03 11:38:32 +00:00
jan.nijtmans 2da2d370b8 Use (char *)NULL as end sentinel in documentation (as Linux man-pages already do too, e.g. [https://linux.die.net/man/3/tcl_appendresult]) 2024-06-03 11:37:47 +00:00
dkf 4a25523bd5 Some tidying up, mostly of indentation 2024-06-01 16:13:39 +00:00
jan.nijtmans cea158cb1d Rebase to 9.0 2024-05-31 14:39:39 +00:00
jan.nijtmans 4b02aec22c Since int() doesn't truncate any more (TIP #514), adapt the documentation accordingly 2024-05-31 14:32:46 +00:00
jan.nijtmans 0c084c085d Since int() doesn't truncate any more (TIP #514), adapt the documentation accordingly 2024-05-31 14:30:01 +00:00
jan.nijtmans 04696b538d Make last test-cases pass 2024-05-31 13:21:27 +00:00
dkf 4796dbdbef Merge 8.7 2024-05-31 11:01:10 +00:00
dkf 98c55af534 Merge 8.6 2024-05-31 11:00:36 +00:00
dkf ee5a83885e More elegant background error interception, used more widely in oo.test 2024-05-31 10:56:00 +00:00
jan.nijtmans c9afb464fe Make a start with new TIP implementation, handling '%d' for 'format' and '%d'/'L'/'z'/'t'/'q'/'j' for 'scan' 2024-05-31 09:16:52 +00:00
dkf bc6f233de0 [7c934f4a3d] Make sure to also trap background errors 2024-05-31 08:58:03 +00:00
jan.nijtmans f917b2aa03 Fix [9c258a841a]: document %t/%z/%j/%q size field specifiers. Fix %j/%z/%t matching the C printf 2024-05-30 22:02:14 +00:00
jan.nijtmans a61d95045e Fix [9c258a841a]: document %t/%z/%j/%q size field specifiers. Fix %j/%z/%t matching the C printf 2024-05-30 21:52:02 +00:00
jan.nijtmans 9ce6a45829 Let's [9c258a841a|fix] the j%j/%q type specifiers, so they behave like C in scripts, and document them 2024-05-30 21:26:39 +00:00
sebres d4a61adbe4 merge 8.7 2024-05-30 18:38:05 +00:00
sebres c6cbb0ff4a closes [34870ab5756911d1]: no double free if Tcl_DeleteAssocData gets called in deleteProc (if interp gets deleted); amend to [ec7e558c34856b07], reverts [b95643fa3926f2e3]. 2024-05-30 18:36:29 +00:00
jan.nijtmans e524b914e2 Merge-mark 2024-05-29 19:27:41 +00:00
jan.nijtmans 4675e3f16b Another round of sentinel fixes for 8.6, NULL -> (char *)NULL 2024-05-29 19:14:34 +00:00
jan.nijtmans 690df67c55 Let's [9c258a841a|fix] the %p/%z/%t type specifiers, so they behave like C in scripts, and document them 2024-05-29 15:20:31 +00:00
jan.nijtmans 593ded5c87 Merge-mark 8.7 2024-05-29 09:45:53 +00:00
jan.nijtmans 9c67485399 Fix [18f4a94d03], by reverting [9bcec7cd880540c3], which caused it.
See [https://core.tcl-lang.org/tcl/wiki?name=Rationale+for+rollback+of+refchan+event+generation+in+core|here] for motivation, approved by the TCT.
2024-05-29 09:44:42 +00:00
apnadkarni 0cbce6806f Reverted changes to refchan event generation - details below. Tx to Jan for actual revert work.
See https://core.tcl-lang.org/tcl/wiki?name=Rationale+for+rollback+of+refchan+event+generation+in+core
Revert tested on Windows/VC++, Linux w/valgrind, twapi tls, tcllib virtual channels, iocp channels.
Revert approved by multiple TCT members.

The following bugs impacted:  67a5eabb  de232b49  080f846f  ac7592e7
2024-05-29 09:07:30 +00:00
apnadkarni 640db582e6 Merge trunk 2024-05-29 08:37:13 +00:00
jan.nijtmans 56c27768c7 Merge 8.7 2024-05-28 13:24:18 +00:00
sebres bdba6200f5 partial merge 8.7 (cherrypick of tests changes only) 2024-05-28 13:08:11 +00:00
sebres 575f460ac1 merge 8.6 2024-05-28 13:04:52 +00:00
sebres 01ba0865d8 cmdMZ.test: more precise and fast _nrt_sleep, no failures with valgrind 2024-05-28 13:03:33 +00:00
jan.nijtmans 57536f7cac Eliminate some unnecessary type-casts. Tcl_GetString -> TclGetString where appropriate 2024-05-28 12:54:10 +00:00
sebres 561857f79d ioTrans.test: removed constraint definition - notValgrind is already part of tcltest 2024-05-28 12:52:09 +00:00
jan.nijtmans 7d54d1c504 Make TclGlob() a static function. Sentinel/indenting/comment improvements (all backported from 8.7) 2024-05-28 12:38:44 +00:00
apnadkarni 277825e13e Fix tests - need longer timer under valgrind. Close created channels. 2024-05-28 11:32:39 +00:00
apnadkarni eefb507809 Merge trunk 2024-05-28 03:02:13 +00:00
jan.nijtmans 52ba0383a1 Merge-mark 2024-05-27 21:32:54 +00:00
jan.nijtmans f2686eca9d Improve details about attached zipfs archives in tclsh and wish (backport from 9.0) 2024-05-27 21:21:07 +00:00
jan.nijtmans 2551e10014 Merge 8.7 2024-05-27 21:15:27 +00:00
jan.nijtmans c871de898a Another round of sentinel improvements 2024-05-27 21:04:39 +00:00
jan.nijtmans 1f059c4f28 Eliminate TclPrintByteCodeObj()'s 'interp' argument, which is not used 2024-05-27 20:23:37 +00:00
sebres ba0158ee86 merge 8.7 2024-05-27 20:19:30 +00:00
sebres 443213a39e merge 8.6 2024-05-27 20:16:00 +00:00
sebres 15ebf19a87 speedup interp.test a bit: switch to 50ms-based time limits (instead of 1sec);
more tests for interp-34.14 covering [e3f4a8b78d] (direct/NRE)
2024-05-27 20:09:13 +00:00
sebres 3a0060b462 fix for [e3f4a8b78dec4bdb]: don't swallow limit errors in further invocations of EvalObjvCore (e. g. direct invocation or NRE, Tcl_EvalObjv, Tcl_EvalObjEx, TclNREvalObjEx, etc);
partially reverts [b740e2abbd44c7d0]
2024-05-27 19:26:46 +00:00
griffin b655decaa0 Improve details about attached zipfs archives in tclsh and wish. 2024-05-27 16:31:12 +00:00
apnadkarni 24fb8aad9c Merge trunk 2024-05-27 16:10:03 +00:00
jan.nijtmans 74b47fa53f Missing ',' between "INDEX" and "OUTOFRANGE" 2024-05-27 12:52:36 +00:00
jan.nijtmans 17f327920b Eliminate TclPrintByteCodeObj()'s 'interp' argument, which is not used. Fix some indenting. 2024-05-27 11:24:32 +00:00
jan.nijtmans 208d3bc095 Eliminate TclPrintByteCodeObj()'s 'interp' argument, which is not used. 2024-05-27 11:04:53 +00:00
griffin f6ebe7e233 Merge main 2024-05-26 19:43:33 +00:00
griffin 2500fbaf48 Fix spelling errors. 2024-05-26 19:21:49 +00:00
dkf ee407b9bf6 Merge 8.7 2024-05-26 14:09:38 +00:00
dkf b2214142f4 merge 8.6 2024-05-26 13:19:43 +00:00
dkf 1c8e57af31 More C functions for working with dicts [656fe3c816] 2024-05-26 10:04:31 +00:00
griffin e00e87c6aa Add note about static vs dynamic builds. 2024-05-25 18:32:05 +00:00
dkf bac8bdb8bb Merge 8.7 2024-05-25 15:54:52 +00:00
dkf f2ff6304e8 merge core-8-6-branch 2024-05-25 15:35:45 +00:00
dkf a5d90257c2 Check limits immediately when we do [interp eval]. [e3f4a8b78d] 2024-05-25 15:18:54 +00:00
dkf 1a46ae83e5 Test to demonstrate [9ee9f4d7be]. Not fixed. 2024-05-25 13:53:52 +00:00
dkf 872c04a64a Use the new operations 2024-05-25 11:31:34 +00:00
jan.nijtmans fcb7122a97 Merge 8.7 2024-05-25 09:24:13 +00:00
dkf d0f4560014 Add some more C functions for working with dicts [656fe3c816] 2024-05-25 09:13:47 +00:00
jan.nijtmans b4acb0d339 Unneeded Tcl_DStringFree() (twice) 2024-05-25 09:09:52 +00:00
jan.nijtmans 1f6cd5f26d Remove TclSetProcessGlobalValue() "encoding" parameter: it should always be NULL 2024-05-24 22:14:08 +00:00
dkf 19278ba90a merge core-8-branch 2024-05-24 20:34:04 +00:00
dkf 7a36917c20 merge core-8-6-branch 2024-05-24 19:49:02 +00:00
dkf 0201d4b3ee Use TclDStringToObj a bit more 2024-05-24 19:36:08 +00:00
griffin c9a7751a1d address ticket [43b7e5b511] - Improve zipfs description in tclsh manual. 2024-05-24 17:50:38 +00:00
apnadkarni b7b512c7b2 Tests for bug fixes 2024-05-24 16:22:18 +00:00
apnadkarni 49171b66ba Merge trunk 2024-05-24 16:09:33 +00:00
apnadkarni 6d5892aede Merge trunk 2024-05-24 16:05:19 +00:00
apnadkarni 9b558e326b Merge mark 2024-05-24 15:54:09 +00:00
apnadkarni f8300a811a Fix [e589d9bdab] - fconfigure socket -peername 2024-05-24 15:51:54 +00:00
apnadkarni 1c5176a55d Backport test for bug [e589d9bdab] 2024-05-24 15:31:28 +00:00
apnadkarni c53584cfb9 Fix [e589d9bdab] - fconfigure socket -peername 2024-05-24 15:29:54 +00:00
apnadkarni 5319a81c10 Add test for [e589d9bdab] 2024-05-24 15:19:13 +00:00
apnadkarni 77569344cf Fix [e589d9bdab] 2024-05-24 15:13:10 +00:00
jan.nijtmans 63e1ae648f Code optimization: no need for encoding = Tcl_GetEncoding(NULL, NULL). Use Tcl_DStringToObj where possible 2024-05-24 08:55:35 +00:00
jan.nijtmans 4e41c1a68b Merge 8.6 2024-05-24 08:04:40 +00:00
jan.nijtmans 102df76131 Code optimization: no need for encoding = Tcl_GetEncoding(NULL, NULL). Use TclDStringToObj where possible 2024-05-24 07:03:46 +00:00
jan.nijtmans b4703a9c7b Fix [3fc3287497]: TclGetProcessGlobalValue encodes information twice on Windows 2024-05-23 15:37:15 +00:00
jan.nijtmans 99511347b5 Fix [3fc3287497]: TclGetProcessGlobalValue encodes information twice on Windows 2024-05-23 15:14:35 +00:00
jan.nijtmans 4f971c6810 Fix [3fc3287497]: TclGetProcessGlobalValue encodes information twice on Windows 2024-05-23 13:48:02 +00:00
jan.nijtmans efe6a6ead7 Merge 8.7 2024-05-23 13:44:55 +00:00
dkf 351ab9f3bf Clarify docs 2024-05-23 13:21:45 +00:00
dkf 3389b582e2 [154f0982f2] Update createWithNamespace to error on namespace creation failure 2024-05-23 13:18:18 +00:00
jan.nijtmans 40f392b7dd Merge 8.6 2024-05-23 12:00:59 +00:00
jan.nijtmans d707e1395b Fix 2 warnings on Win32 (Thanks, Harald). Some more code cleanup, backported from 8.7) 2024-05-23 11:52:04 +00:00
dkf 3cb828ffef Better flag up the oo::Slot class in the docs, add missing method [28d6013ae6] 2024-05-23 11:27:05 +00:00
jan.nijtmans bfca9ca687 Possible fix for [3fc3287497]: TclGetProcessGlobalValue encodes information twice on Windows 2024-05-23 10:18:23 +00:00
jan.nijtmans 3c83c57a73 .travis.yml is not used any more 2024-05-22 22:29:16 +00:00
jan.nijtmans e857121ed3 .travis.yml is not used any more 2024-05-22 22:24:12 +00:00
jan.nijtmans b118169d71 .travis.yml is not used any more 2024-05-22 22:15:08 +00:00
jan.nijtmans 8e9951de5e clock option re-ordering 2024-05-22 21:27:49 +00:00
jan.nijtmans db098b8fd9 clock option re-ordering 2024-05-22 21:12:15 +00:00
sebres a59d03dc90 merge 8.7 2024-05-22 10:50:51 +00:00
sebres 75fbe030ae amend to [de08cf03235f3ce9], [7842f33a5cc5eed0], stop tail recursion in AddSimpleClassChainToCallContext if classPtr is NULL 2024-05-22 10:50:01 +00:00
sebres 391dd29728 merge point 2024-05-22 10:24:15 +00:00
sebres 3543c536e5 merge point 2024-05-22 10:23:34 +00:00
sebres 488f3a871d cherry-pick [659ca0ae8da43a1e] for 8.6: don't need to invoke it in case if oPtr->selfCls is NULL 2024-05-22 10:22:30 +00:00
sebres 2de1aa561a merge 8.7 2024-05-22 10:13:30 +00:00
sebres 0981127509 small amend to [1d16344c8cfaecc8], [7842f33a5cc5eed0]: don't need to invoke both functions in case if oPtr->selfCls is NULL 2024-05-22 10:11:59 +00:00
jan.nijtmans 9de6ca2530 Merge 8.7 2024-05-22 09:26:08 +00:00
jan.nijtmans 39f39163b7 Merge 8.6. Fix TCL_NO_DEPRECATED build 2024-05-22 09:24:48 +00:00
jan.nijtmans 8f53fd7c7b Spacing/code cleanup, backported from 8.7
20:19:30 [4c1393b596] *CURRENT* "TCL_TOMMATH" is not used anywh
2024-05-22 09:09:21 +00:00
jan.nijtmans be3a14b3ae Merge 9.0 2024-05-21 22:06:38 +00:00
jan.nijtmans 0cf372a804 "TCL_TOMMATH" is not used anywhere 2024-05-21 21:22:14 +00:00
jan.nijtmans fd0b5f1e04 "TCL_TOMMATH" is not used anywhere 2024-05-21 21:17:19 +00:00
jan.nijtmans e2d29d62e7 "TCL_TOMMATH" is not used anywhere 2024-05-21 20:19:30 +00:00
jan.nijtmans 97323bf79b Add tommath-????/zlib-???? to build-info if libtommath/zlib is statically linked 2024-05-21 20:00:17 +00:00
jan.nijtmans 0bd8358dd3 Add tommath-????/zlib-???? to build-info if libtommath/zlib is statically linked 2024-05-21 19:50:55 +00:00
jan.nijtmans 7b11e86ea8 Merge 8.7. Some int -> Tcl_Size 2024-05-21 15:03:29 +00:00
jan.nijtmans dc5969ead1 Fix off-by-one error in tcl::build-info command. Improve spacing 2024-05-21 14:05:46 +00:00
sebres 5f249ddbd5 merge 8.7 2024-05-21 10:51:07 +00:00
sebres 561eb3f058 circumvent crash [7842f33a5cc5eed0] on null ptr (oPtr->selfCls may be NULL) 2024-05-21 10:49:54 +00:00
sebres e055d3cdb5 merge 8.7 2024-05-21 10:33:56 +00:00
sebres ff100527cd merge 8.6 2024-05-21 09:48:41 +00:00
sebres 7a3992fe6d closes [79474c58800cdf94]: fixes 2 segfaults and 2 leaks (common IO handlers and reflected channels) 2024-05-21 09:45:37 +00:00
jan.nijtmans 32cf887382 b2 -> b3, as preparation for next release 2024-05-21 09:04:45 +00:00
jan.nijtmans 4fd6c4a2ac Fix gcc warning: return should have value 2024-05-20 20:33:38 +00:00
dgp bafb49aa8e merge release branches 2024-05-20 18:09:08 +00:00
dgp fc33341789 Replay the churn commits 2024-05-20 18:07:31 +00:00
dgp 2aff0cad35 merge release 2024-05-20 17:52:58 +00:00
jan.nijtmans 6f085c6284 Improve tcl::build-info implementation, adapted from dkf's result-helpers branch 2024-05-20 17:00:46 +00:00
dkf e9b622c840 Fix [7842f33a5c]: Call chain creation could crash in destructors in some tangled cases 2024-05-20 15:20:30 +00:00
dkf ed13e81679 Fix [7842f33a5c]: Call chain creation could crash in destructors in some tangled cases 2024-05-20 15:18:18 +00:00
dkf 596b9dd4a6 Fix for [7842f33a5c]: Stereotype call chains were ending up bogus in some situations 2024-05-20 15:09:01 +00:00
dkf 4f71367c38 Add some machinery for easier testing 2024-05-20 15:06:52 +00:00
dkf 8f8f97ec13 Test case to demonstrate [7842f33a5c] 2024-05-20 13:38:38 +00:00
jan.nijtmans f64945adcc Improve readability from some typecasting trickery. Backported from 9.0 (thanks, dkf!) 2024-05-20 09:54:44 +00:00
jan.nijtmans 97452b235f Backport spacing-related changes from 9.0 2024-05-20 09:32:30 +00:00
jan.nijtmans d16525dd0f Improve tcl::build-info implementation, adapted from dkf's result-helpers branch 2024-05-19 22:23:02 +00:00
jan.nijtmans efa8190023 Merge-mark 2024-05-18 22:01:23 +00:00
jan.nijtmans e6dfe4b2fb Update changes.md 2024-05-18 21:58:14 +00:00
dgp 23e7962e65 Bring over bug fixes from trunk to get released 2024-05-17 16:07:10 +00:00
dgp d89daacc5c Utility branch I can sensibly compare with core-9-0-b2-rc 2024-05-17 15:59:45 +00:00
dkf 9ac526c24f Proper fix for [87271f7cd6]. Structures relating to [info frame] in a method now have the correct lifetime. 2024-05-17 13:48:15 +00:00
dkf b102242dc5 Proper fix for [87271f7cd6]. Structures relating to [info frame] in a method now have the correct lifetime. 2024-05-17 13:45:50 +00:00
dkf a7533c3012 Proper fix for [87271f7cd6]. Structures relating to [info frame] in a method now have the correct lifetime. 2024-05-17 13:43:40 +00:00
dkf 676259e74c Remove the band-aid 2024-05-17 13:29:12 +00:00
dkf 3c40e60489 Fix the problem properly 2024-05-17 13:28:51 +00:00
sebres 15fd9ef834 split iocmd-32.3 in two tests (move cycle outside of the test) 2024-05-17 13:21:47 +00:00
sebres 46770d4bb1 merge apn-channelstate-leak, fixes possible leaks on several members that may be set after the close, asynchronously or via some callbacks or handlers 2024-05-17 12:57:46 +00:00
apnadkarni 0c8986dc65 Free ChannelState.chanMsg .unreportedMsg 2024-05-17 11:48:53 +00:00
dkf aa585c0ac9 Starting to clean up the mess. The extra frame info can have the same lifespan as the method itself. 2024-05-17 11:11:31 +00:00
sebres 4fb3e71bda extend test to cover both variants (without and with error in reflected write handler) 2024-05-17 10:14:01 +00:00
sebres 3d0973aa69 fixes yet another segfault (if write handler doesn't generate an error, but returns normally with length of written bytes) 2024-05-17 09:51:41 +00:00
sebres d882c39f4b fix mem-leak originating by cyclic reference rcPtr->name (type "channel", its refCount may be larger than 1) => statPtr => chanPtr => chanPtr->instanceData => refChan:
this would avoid that object rcPtr->name (name of channel that gets deleted or dead) still holds the reference to statPtr, see 2nd part of bug [79474c58800cdf94].
2024-05-16 20:28:04 +00:00
dkf ca43b5be02 Apply emergency workaround for [87271f7cd6]; not fixed yet, but no longer crashes 2024-05-16 15:55:51 +00:00
dkf b8556f008e Apply emergency workaround for [87271f7cd6]; not fixed yet, but no longer crashes 2024-05-16 15:55:28 +00:00
dkf 65d508f44b Apply emergency workaround for [87271f7cd6]; not fixed yet, but no longer crashes 2024-05-16 15:53:29 +00:00
dkf 71e8e7a168 Apply an emergency workaround 2024-05-16 15:51:42 +00:00
dkf fb0026a7a9 Make sure we're looking for the right results 2024-05-16 15:43:21 +00:00
dkf 1b1224956e Test that hits [87271f7cd6] reasonably precisely 2024-05-16 15:38:08 +00:00
dkf c51319579f A couple of tiny code style improvements 2024-05-16 12:43:52 +00:00
sebres 3ff69480e6 code review: preserving r/w channels after all possible failures (don't need to release in error case) 2024-05-16 08:56:45 +00:00
sebres 03cf1c69bb code review: preserving r/w channels after all possible failures (don't need to release in error case) 2024-05-16 08:56:01 +00:00
dkf 345d85b272 Fix [36e5517a6850]: old style method selection in [info class methods] and [info object methods] still supported 2024-05-16 08:53:06 +00:00
dkf cd5a4da18b Add code comments 2024-05-16 08:51:17 +00:00
sebres 51dc3f20b0 test: clean timeout timer 2024-05-16 08:49:27 +00:00
dkf f664ad000e Fix the bug; [info class methods -private] regression with TIP 500 2024-05-16 08:44:49 +00:00
dkf 1a9b02cd4e Tests to illustrate problem found in [36e5517a6850] 2024-05-16 08:23:04 +00:00
sebres 629a54ead5 small code review: removal of unneeded - result is initially TCL_OK 2024-05-15 15:08:29 +00:00
sebres 3144d02e6d small code review: removal of unneeded - result is initially TCL_OK 2024-05-15 15:06:44 +00:00
sebres 8a4ed718c4 ultimate fix for [79474c58800cdf94]: avoid segfault on copy-state structure freed to early, protected by refCount and by preserving its r/w channels now 2024-05-15 12:52:06 +00:00
sebres bbd85b6ee0 test illustrating bug [79474c58800cdf94] (segfaults at end of iocmd-32.3) 2024-05-15 12:46:39 +00:00
sebres b6b6d5e98a ultimate fix for [79474c58800cdf94]: avoid segfault on copy-state structure freed to early, protected by refCount and by preserving its r/w channels now;
back-ported (squashed rewrite) from tclSE to 8.5 base
2024-05-15 12:39:53 +00:00
dgp c19be8203c Merge [4a1848c27fd63955], which was improperly backed-out (there was no notice
or public discussion).
2024-05-14 19:08:23 +00:00
dgp b13a1d86f4 silence warning (implicit-fallthrough) 2024-05-14 19:07:38 +00:00
dgp 956c8db288 merge 8.7 2024-05-14 19:05:43 +00:00
dgp 1b451520d5 merge 8.7 (interim fix for [9889f96f4da77e3b]) 2024-05-14 18:39:21 +00:00
dgp 38f06ffd28 Funcs without args must explicitly take void
Otherwise C compilers operate in a weird legacy mode which we never want.
2024-05-14 18:37:56 +00:00
dgp b1f00d516b Merge changes from trunk up to but not including style/whitespace work. 2024-05-14 18:36:44 +00:00
dgp 9005bf59fb More conventional Markdown 2024-05-14 18:11:17 +00:00
jan.nijtmans 433a10b1fe Merge-mark 2024-05-14 12:54:59 +00:00
jan.nijtmans de4007758b (cherry-pick) Merge [4a1848c27fd63955], bringing Tcl.n back to the state it was. 2024-05-14 12:47:16 +00:00
jan.nijtmans 37d4aa08d3 Backout the "dullest commit ever" (not my words ....). It breaks the build.
JN: Many of those changes are actually good, but there are too many changes to be able to search for a bug somewhere. Feel free to re-apply, after assuring it's really only whitespace changes. (my advise: do that after 9.0b2)
2024-05-14 08:26:06 +00:00
pooryorick d3a24bbdf1 Merge [4a1848c27fd63955], which was improperly backed-out (there was no notice
or public discussion).
2024-05-14 07:12:59 +00:00
sebres 97b4986eee silence warning (implicit-fallthrough) 2024-05-13 16:48:30 +00:00
sebres 15a18471fe merge 8.7 2024-05-13 16:42:01 +00:00
sebres 68f227537c clock.test: amend to hotfix [9889f96f4da77e3b] - ensemble created implicitely now 2024-05-13 16:39:30 +00:00
dkf 444e06f208 Clean up a lot of small whitespace issues
This is the dullest commit ever. Sorry.
2024-05-13 15:41:44 +00:00
sebres 6b9279d4f7 merge 8.7 (interim fix for [9889f96f4da77e3b]) 2024-05-13 10:35:54 +00:00
sebres 07fcbc1b06 interim fix for [9889f96f4da77e3b]: avoid lazy creation and compilation for clock-ensemble (unless the issue with line-number reset by recompile is solved) 2024-05-13 10:34:11 +00:00
jan.nijtmans b6527468f6 Backout [b49efeca6a] (so people can judge whether this is just a textual improvement or not) 2024-05-13 07:55:28 +00:00
dkf 539d5f4484 More whitespace cleanup 2024-05-10 15:40:16 +00:00
jan.nijtmans 3812f72f5b Merge-mark 2024-05-10 14:52:46 +00:00
jan.nijtmans fc316d4f32 (backport): Funcs without args must explicitly take void 2024-05-10 14:42:03 +00:00
dkf 10e58e7469 Funcs without args must explicitly take void
Otherwise C compilers operate in a weird legacy mode which we never want.
2024-05-10 13:51:31 +00:00
dkf 0e940ad7b4 Code style fixes
Mostly whitespace fixing really
2024-05-10 13:45:45 +00:00
dkf 02755b3650 Code style cleanup 2024-05-10 11:28:23 +00:00
sebres 5c755bf942 closes [10aa8403d064439f]: merge 8.7, restore time64bit constraint (all platforms now) 2024-05-10 10:22:58 +00:00
sebres cb942e9a4e merge 8.6 2024-05-10 10:18:09 +00:00
sebres 1f1e1694f2 issue [10aa8403d064439f]: make command testsize platform-independent (covers constraint time64bit for unix too) 2024-05-10 10:11:27 +00:00
dkf 812f642d6c Tidy up the zlib code a bit
In particular, 'cd' was used for vars of different types (ClientData, ZlibChannelData) which was quite confusing.
2024-05-09 15:38:18 +00:00
jan.nijtmans 2d7e414c0a Merge 8.7 2024-05-08 15:11:02 +00:00
jan.nijtmans b8132395c3 Add some typecasts, remove duplicate "memset", remove some spacing. 2024-05-08 15:06:09 +00:00
oehhar 2bc0e38d8e Merge mark 2024-05-08 14:42:36 +00:00
oehhar 2c4a038cbf Backport [e0bdc14669] "Cleaning up tclWinSock.c" 2024-05-08 14:39:31 +00:00
apnadkarni 5152772a4f Start on at least protecting against crashes like [0de6c1d79c] 2024-05-08 13:30:42 +00:00
dkf 4b9188b854 Cleaning up tclWinSock.c 2024-05-08 09:03:58 +00:00
sebres c68cc6b40f merge 8.7 2024-05-07 20:47:37 +00:00
sebres 97104c118e more simplifications 2024-05-07 20:45:54 +00:00
sebres 37fea71ea5 merge 8.7 2024-05-07 20:12:23 +00:00
sebres 4af7d45781 code review (optimization by parse of word tokens in clock format) 2024-05-07 20:09:14 +00:00
sebres 577515d934 closes [a858d95f4bfddafb]: adjust word-token pointer after possible realloc 2024-05-07 19:04:29 +00:00
jan.nijtmans b7e3bc9141 Fix [3c26dec71e]: TCLX_y_TM_PATH - unspecified behaviour - change with 90b1rc 2024-05-05 20:26:22 +00:00
jan.nijtmans 827fe28571 Merge 8.6 2024-05-05 20:21:12 +00:00
jan.nijtmans 7180624f9b Fix [3c26dec71e]: TCLX_y_TM_PATH - unspecified behaviour - change with 90b1rc 2024-05-05 20:05:57 +00:00
jan.nijtmans 5b4a65fbee Possible solution for [3c26dec71e]: TCLX_y_TM_PATH - unspecified behaviour - change with 90b1rc 2024-05-04 18:53:14 +00:00
jan.nijtmans 737729922e Merge 8.6 2024-05-04 16:25:53 +00:00
jan.nijtmans 3d35f4695d Fix [a5f4a7aed8] - tcl::tm::path auto_index entry 2024-05-04 16:17:32 +00:00
jan.nijtmans d4dbd97ad1 [unknown] only calls shell command in interactive tclsh sessions 2024-05-04 16:12:42 +00:00
dgp 2e024c6ca2 merge trunk 2024-05-03 17:55:59 +00:00
mjanssen be6437a1ee [unknown] only calls shell command in interactive tclsh sessions 2024-05-03 16:42:58 +00:00
apnadkarni d84701d4e1 Fix [a5f4a7aed8] - tcl::tm::path auto_index entry 2024-05-03 16:23:22 +00:00
jan.nijtmans 34072f27e3 Merge 9.0 2024-05-03 13:26:27 +00:00
mjanssen e28813c53e [unknown] only calls shell command in interactive tclsh sessions 2024-05-02 21:29:19 +00:00
jan.nijtmans 7131af7507 Better fix for [1e48483c8b]: Use of non-standard C code in TCLBOOLWARNING 2024-05-02 21:11:49 +00:00
jan.nijtmans 586215419b Better fix for [1e48483c8b]: Use of non-standard C code in TCLBOOLWARNING 2024-05-02 21:00:07 +00:00
jan.nijtmans c055990ae5 Make sure to forward-declare "struct addrinfo". Some compilers don't like doing that in a parameter-list 2024-05-02 12:48:20 +00:00
jan.nijtmans 181a1c1601 Make sure to forward-declare "struct addrinfo". Some compilers don't like doing that in a parameter-list 2024-05-02 11:22:49 +00:00
jan.nijtmans 869cc2535e Remove COMPAT==0 part, no longer makes sense. More code-cleanup, backported from 8.7 2024-05-02 11:12:46 +00:00
oehhar 05ceca327f Merge 8.7 2024-05-02 09:59:55 +00:00
oehhar bfc9971c80 Ticket [cab08bbf04]: document "scan %llu" as valid 2024-05-02 09:57:32 +00:00
oehhar 1a7d37e125 Ticket [cab08bbf04]: document "format %llu" as invalid 2024-05-02 09:55:40 +00:00
jan.nijtmans 7ed420aad9 Make sure to forward-declare "struct addrinfo". Some compilers don't like doing that in a parameter-list. 2024-05-02 09:22:48 +00:00
jan.nijtmans c93be368df Would checking for __STRICT_ANSI__ help? 2024-05-02 09:10:06 +00:00
jan.nijtmans 040067ac0b Add runtime PANIC when Tcl_GetBoolFromObj() violates size-restrictions, and compile-time checks are disabled with by using -std=c99 2024-05-02 08:41:02 +00:00
jan.nijtmans e27b880521 Check for C11 before using _Static_assert 2024-04-30 14:00:46 +00:00
jan.nijtmans ece4a866e3 Rebase to 9.0 2024-04-30 11:51:20 +00:00
dgp d750d50656 merge trunk
First pass on changes file items pulled from release notes.
Probably needs Markdown conformance work
2024-04-29 17:26:54 +00:00
jan.nijtmans 03a1ca96e0 Eliminate warnings in tclTest(Obj).c, caused by our -Wc++-compat flag. 2024-04-29 11:53:01 +00:00
jan.nijtmans f9090ff852 Eliminate warnings in tclTest(Obj).c, caused by our -Wc++-compat flag. 2024-04-29 11:51:43 +00:00
jan.nijtmans 4f232cf16e One missing TCL_NORETURN 2024-04-29 11:50:22 +00:00
jan.nijtmans 1af61f093f Tcl_MainEx() never returns, so it should be TCL_NORETURN as well. 2024-04-29 11:46:08 +00:00
jan.nijtmans ec55073555 TCL_NORETURN1 is empty for extensions, just not for Tcl and Tk builds. Why? Backport changing this from 8.7/9.0 2024-04-29 10:06:09 +00:00
jan.nijtmans 67858e5165 Eliminate (internal) TclpExit(), which is just the same as exit() 2024-04-29 09:28:07 +00:00
jan.nijtmans bb78c34cf7 Merge 8.6 2024-04-29 08:26:43 +00:00
jan.nijtmans 44f6a3be3e Missing TCL_NORETURN for Tcl_ExitThread() (and TclpThreadExit()). Backported from 8.7/9.0. 2024-04-29 07:12:31 +00:00
jan.nijtmans f2c6be7bf6 Remove outdated comment 2024-04-28 17:18:29 +00:00
jan.nijtmans 8afa32afdb Fix clang warning:
tclWinTime.c:84:6: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
    {0, 0},
     ^~~~
     {   }
2024-04-27 17:30:09 +00:00
jan.nijtmans 5fa771e3cd Fix clang warning:
tclWinTime.c:84:6: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
    {0, 0},
     ^~~~
     {   }
2024-04-27 17:26:48 +00:00
jan.nijtmans 99f46c4b8c This construct doens't work on MSVC 2024-04-27 17:11:31 +00:00
jan.nijtmans 72f1949c76 This construct doens't work on MSVC 2024-04-27 11:58:12 +00:00
apnadkarni 704062d01b Fix [9a8ce8af3d] - test suite hang in io-28.6 2024-04-27 09:30:21 +00:00
apnadkarni d88cd0c93a Fix test for [9a8ce8af3d] 2024-04-26 17:02:05 +00:00
jan.nijtmans b1027847bd Fix clang warning:
tclWinTime.c:84:6: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
    {0, 0},
     ^~~~
     {   }
2024-04-26 14:50:19 +00:00
jan.nijtmans eb9e224802 Fix [1e48483c8b]: Use of non-standard C code in TCLBOOLWARNING 2024-04-26 13:00:46 +00:00
jan.nijtmans 972899b64d Fix [1e48483c8b]: Use of non-standard C code in TCLBOOLWARNING 2024-04-26 12:59:06 +00:00
jan.nijtmans cf001a0972 Slightly better 2024-04-26 12:29:23 +00:00
jan.nijtmans 45d33a7dac Proposed fix for [1e48483c8b]: Use of non-standard C code in TCLBOOLWARNING 2024-04-26 11:27:58 +00:00
jan.nijtmans ce80f1fecf typo 2024-04-26 07:50:02 +00:00
griffin 71ffa3d71a Fix dict performance bug: Remove abstractlist extension from dict objtype. 2024-04-25 19:49:08 +00:00
jan.nijtmans f7329057ee Fix for [ef23a85ac6]: Tcl_PanicProc - Tcl9 & NaviServer. 2024-04-25 15:03:15 +00:00
jan.nijtmans bb8b9a927b Fix for [ef23a85ac6]: Tcl_PanicProc - Tcl9 & NaviServer. 2024-04-25 14:59:55 +00:00
jan.nijtmans 6a4a437635 Rebase to 9.0 2024-04-25 09:44:24 +00:00
jan.nijtmans 3be988f153 Make it more clear that TclpThreadExit() and Tcl_ExitThread() are TCL_NORETURN too 2024-04-25 09:41:59 +00:00
jan.nijtmans 12ac0ea3e5 Make it more clear that TclpThreadExit() and Tcl_ExitThread() are TCL_NORETURN too. 2024-04-25 09:40:46 +00:00
jan.nijtmans 0dd033f99e Rebase to 9.0 2024-04-25 08:44:46 +00:00
jan.nijtmans ee55320de2 Merge 8.7 (Tcl_ConsolePanic() should be TCL_NORETURN) 2024-04-25 08:29:56 +00:00
jan.nijtmans b38ad5b978 (cherry-pick): Fix building of libtclzip for out-of-source builds 2024-04-25 08:24:05 +00:00
apnadkarni 6f73a33fd7 Fix building of libtclzip for out-of-source builds 2024-04-25 04:47:13 +00:00
jan.nijtmans 457eefeeb5 Tcl_ConsolePanic() is TCL_NORETURN, not TCL_NORETURN1. Merge 8.6 2024-04-24 19:54:10 +00:00
jan.nijtmans 15cba98c5f Better keep Tcl_ConsolePanic as it was (with TCL_NORETURN) 2024-04-24 19:41:08 +00:00
jan.nijtmans 90d1f10296 Improve use of TCL_NORETURN, so no unnecessary warnings are produced any more 2024-04-24 19:16:12 +00:00
dgp a97680b7df dup test name 2024-04-24 18:39:51 +00:00
dgp 09e20d1566 merge trunk 2024-04-24 18:30:27 +00:00
dgp 849155ab60 Merge revisions to the hash table implementation that prevent observed
reads from uninitialized memory.

The revisions may cause operations to slow down in some custom hash tables.

A new flag value TCL_HASH_KEY_DIRECT_COMPARE may be added to the flags
field of the Tcl_HashKeyType struct of a custom hash table to restore 
the lost performance.  This flag has been added where useful for hash tables
in the Tcl library.  Guidance and documentation for how extensions may
adapt are pending.
2024-04-24 17:19:00 +00:00
dgp c8b30c17e9 Merge more from trunk 2024-04-24 17:02:29 +00:00
dgp 0e7feb6595 Merge some trunk changes. 2024-04-24 15:48:34 +00:00
jan.nijtmans e75b67580c __declspec should have double underscore (even though it works with one) 2024-04-24 12:32:14 +00:00
jan.nijtmans 915810280a Missing "_" in __declspec 2024-04-23 20:36:04 +00:00
jan.nijtmans 3bf92dcde4 Still one TCL_NORETURN1 too much 2024-04-23 20:17:26 +00:00
jan.nijtmans eed2d172c0 Possible fix for [ef23a85ac6]: Tcl_PanicProc - Tcl9 & NaviServer 2024-04-23 20:11:45 +00:00
jan.nijtmans a508cb428b Rebase to 9.0 2024-04-22 20:19:22 +00:00
jan.nijtmans 16696e0c33 Only use Tcl_TomMath_InitStubs() when TCL_WITH_EXTERNAL_TOMMATH is not defined 2024-04-22 18:37:59 +00:00
jan.nijtmans b9cc38ad86 Only use Tcl_TomMath_InitStubs() when TCL_WITH_EXTERNAL_TOMMATH is not defined 2024-04-22 17:41:34 +00:00
jan.nijtmans d106cec620 Fix [6eb8d79cb8]: segfault in obj-34.1 2024-04-22 16:28:40 +00:00
jan.nijtmans af5dea2fa5 Fix [6eb8d79cb8]: segfault in obj-34.1 2024-04-22 16:19:13 +00:00
apnadkarni d090615310 Consolidate channel documentation. close, puts etc. manpages now just reference chan 2024-04-22 12:55:32 +00:00
oehhar c06a63e0d0 Merge 8.7 2024-04-22 07:01:58 +00:00
oehhar fce856a108 Ticket [00b3e5dea8]: "info comdtype" return value "native" created by "Tcl_CreateObjCommand", not "Tcl_CreateObjProc" 2024-04-22 07:00:47 +00:00
griffin 4cab25191f Remove abstractlist extension from dict objtype. 2024-04-22 01:49:29 +00:00
jan.nijtmans 625601df98 Sync parameter name in tcl.decls with other places 2024-04-21 22:27:32 +00:00
jan.nijtmans a473fe9d1f TIP #692: Revise Tcl_GetAliasObj, remove Tcl_GetAlias() 2024-04-21 20:58:38 +00:00
jan.nijtmans f097ea1cc3 Merge 8.7 2024-04-21 10:16:49 +00:00
jan.nijtmans 534e365a87 No need for Tcl_TomMath_InitStubs() any more, due to TIP #648 2024-04-21 10:11:04 +00:00
jan.nijtmans 0fef61d372 TIP #648: New functions Tcl_NewWideUIntObj()/Tcl_SetWideUIntObj() 2024-04-20 22:23:45 +00:00
jan.nijtmans ec54c35ce0 TIP #648: New functions Tcl_NewWideUIntObj()/Tcl_SetWideUIntObj() 2024-04-20 16:52:23 +00:00
jan.nijtmans 200d3711e7 TIP #690: Make "clock scan -valid 1" the default 2024-04-20 16:11:21 +00:00
jan.nijtmans d190e45078 Merge 8.7 2024-04-19 19:55:46 +00:00
jan.nijtmans 32fbf6aa15 Merge 8.6 2024-04-19 19:45:45 +00:00
jan.nijtmans c2bf5cdebd targetNamePtr -> targetCmdPtr (making it the same as in other documentation and tcl.decls) 2024-04-19 13:59:33 +00:00
jan.nijtmans d295976bdd Rebase to 9.0 2024-04-19 13:54:29 +00:00
jan.nijtmans 46207a3404 Merge 9.0 2024-04-19 13:34:14 +00:00
jan.nijtmans 22bda16fa3 Rebase to 9.0 2024-04-19 13:32:50 +00:00
jan.nijtmans 4d2fcb079c Merge 8.7 2024-04-19 13:23:48 +00:00
jan.nijtmans 980f440595 Merge 8.6 2024-04-19 12:36:57 +00:00
jan.nijtmans 328c86e7d4 Reserve 2 more stub entries for TIP #648 2024-04-19 11:49:16 +00:00
jan.nijtmans b90c924c83 More code cleanup, backported from 8.7 2024-04-19 11:48:02 +00:00
jan.nijtmans 091aed9b44 Merge 9.0 2024-04-19 09:37:58 +00:00
jan.nijtmans c0685465ee Merge 8.7 (more indenting) 2024-04-19 08:22:33 +00:00
jan.nijtmans 683beb38ad More indenting 2024-04-19 08:15:29 +00:00
jan.nijtmans 0e10de8442 (backport) Fix indenting 2024-04-19 08:12:21 +00:00
jan.nijtmans 161bda563f Fix indenting 2024-04-19 08:00:18 +00:00
jan.nijtmans 3c298e2857 Rebase to 9.0 2024-04-18 18:34:39 +00:00
jan.nijtmans 51a92e4269 Fix [18f4a94d03] by backing out [9bcec7cd880540c3] (again) 2024-04-18 15:32:16 +00:00
jan.nijtmans a36f493acd Merge 8.7 2024-04-18 15:25:24 +00:00
jan.nijtmans 53bd931179 Merge 8.6 2024-04-18 15:22:30 +00:00
dkf 06c37cdb48 Tcl_DuplicateObj can't return NULL 2024-04-18 14:41:20 +00:00
jan.nijtmans 43b7bfb4cd Reduce the diff between 8.6 and 8.7, by backporting some formatting/restructuring. No functional change. 2024-04-18 14:38:50 +00:00
jan.nijtmans 0a30cf0452 Few additions to release notes 2024-04-17 16:19:32 +00:00
jan.nijtmans fa45122933 Add pkgs8 directories to git/fossil ignore files 2024-04-17 15:42:12 +00:00
jan.nijtmans 0a0c3d11d0 Merge 8.7 2024-04-17 15:37:29 +00:00
jan.nijtmans 529756be1e This fits on a single line (as in 9.0) 2024-04-17 15:35:10 +00:00
sebres 41e698df09 merge point (with small amend, same type as in 9.0 header declared for Tcl_Time::sec) 2024-04-17 15:17:36 +00:00
sebres 5a8ba2536f cherrypick [b73516f7cfccbc9f] to 8.7 - closes [167e0635db]: solves leaks, valgrind test, etc 2024-04-17 15:13:00 +00:00
sebres 16dc2d4b4c closes [167e0635db]: solves leaks, valgrind test, etc 2024-04-17 15:03:46 +00:00
sebres eee424d72c merge 8.7 (clock compat repair) 2024-04-17 14:58:19 +00:00
sebres 6c80da1011 restore backwards compatibility (see clock-44.3) - spaces between tokens are optional, repaired greedy search (minLen), which find start next token or space now;
it is also more consistent than old engine now (covered by clock-44.4)
2024-04-17 14:55:31 +00:00
sebres 84db392d8a merge 8.6 (new clock regression test, illustrating incompatibility of new engine) 2024-04-17 14:39:21 +00:00
sebres d801275add small amend (still one "weak" format) 2024-04-17 14:35:37 +00:00
sebres 3a8fa022c8 clock.test: added regression test - spaces between some scan tokens are optional (illustrating that although clock is strong, it may be sometimes weak :) 2024-04-17 14:19:11 +00:00
jan.nijtmans ff0d91b238 Update MacOS project.pbxproj file too 2024-04-17 13:07:50 +00:00
jan.nijtmans d8884ee2ab Fix "make dist" 2024-04-17 13:06:53 +00:00
jan.nijtmans 77386a619c TIP 693: Restart the changes files.
First version of "changes.md", derived from the 9.0b1 release notes. Far from complete.
2024-04-17 13:04:22 +00:00
jan.nijtmans 2d876ab035 TIP 693: Restart the changes files. (changes.md still TODO) 2024-04-17 12:59:06 +00:00
jan.nijtmans 7d1100313a Deprecate Tcl_GetAlias() 2024-04-17 10:41:56 +00:00
jan.nijtmans c6dcb383b3 Deprecate Tcl_GetAlias() 2024-04-17 10:22:58 +00:00
jan.nijtmans 48f6d9f5e0 Deprecate Tcl_GetAlias(). Will be removed in Tcl 9.0b3 2024-04-17 09:18:26 +00:00
jan.nijtmans 06b24153f7 dup test names 2024-04-17 09:04:31 +00:00
jan.nijtmans 0f21b35808 (cherry-pick): dup test names 2024-04-17 09:03:43 +00:00
jan.nijtmans b29b3e7928 Make auto_mkindex work equally well for 8.x and 9.0 2024-04-17 09:02:22 +00:00
jan.nijtmans b4d145c3c9 Merge 8.6 2024-04-17 08:16:31 +00:00
jan.nijtmans bfe130956f Adapt test-cases too for auto_mkindex change 2024-04-17 07:49:45 +00:00
jan.nijtmans 58934fdb6f Merge-mark 2024-04-16 20:16:28 +00:00
jan.nijtmans b12861c652 Merge 8.6 2024-04-16 17:30:57 +00:00
jan.nijtmans e1c4d36039 Add "-encoding utf-8" to auto_mkindex stuff 2024-04-16 11:34:18 +00:00
jan.nijtmans 26dfbc5bc3 Merge-mark 2024-04-15 17:51:02 +00:00
jan.nijtmans b25e08c40c Use utf-8 in tools/man2help.tcl too 2024-04-15 15:24:36 +00:00
jan.nijtmans 88015c9cc3 One more "-encoding utf-8" 2024-04-15 15:21:25 +00:00
jan.nijtmans 866ed4fd29 Add -encoding utf-8 for tclZIC.tcl tool 2024-04-15 14:48:01 +00:00
sebres 2a31c2eaf6 clean clock mutex 2024-04-15 13:21:54 +00:00
jan.nijtmans 42da2363ee Rebase to 9.0 2024-04-14 15:08:44 +00:00
jan.nijtmans 778d4d485c Merge-mark 2024-04-14 15:05:08 +00:00
jan.nijtmans 955400e778 Merge 8.7 2024-04-14 14:46:07 +00:00
sebres 383dd9ec22 free tz.was (in exit handler) 2024-04-14 14:41:35 +00:00
jan.nijtmans 22d7e8e393 Some int -> Tcl_Size changes 2024-04-14 14:31:55 +00:00
jan.nijtmans 8373c448b2 Merge 9.0 2024-04-14 14:05:35 +00:00
sebres 343c9844ea merge trunk (bug-fix for tclHash with mistaken direct compare) 2024-04-14 13:47:36 +00:00
sebres b08da9f212 amend to [40f13c108666fdda]: although it is no one free to see after ClockFrmScnFinalize, it is better protected in that way (and also avoid delete hash entry during table deletion). 2024-04-14 13:46:23 +00:00
sebres 4e8f0cb92b revert [0e273ad998f16100], because of bug-fix in tclHash 2024-04-14 13:32:04 +00:00
sebres 0f2061209b merge 8.7 2024-04-12 23:04:50 +00:00
sebres addb2c3b21 merge 8.6 2024-04-12 23:03:19 +00:00
sebres b9ab86773b explaination comment 2024-04-12 23:02:15 +00:00
sebres dcb4d0543e merge 8.5 (minor backport from my core) simple speed-up if searching for the key from hash itself (it is safe to compare needle with an address to key.string) 2024-04-12 22:58:56 +00:00
sebres 05fad8df89 minor backport from my core: simple speed-up if searching for the key from hash itself (it is safe to compare needle with an address to key.string);
back to mixed identation (removed before)
2024-04-12 22:55:14 +00:00
sebres ae7c2df757 merge 8.7 2024-04-12 21:59:00 +00:00
sebres cae74b7eb9 merge 8.6 2024-04-12 21:51:40 +00:00
jan.nijtmans 6be8e4b943 Merge 8.7 2024-04-12 21:45:12 +00:00
sebres 88b167d5eb merge 8.5, amend to [82f721a5a039596f]: the bug was fixed incompletely, this is full bug fix now - don't allow direct compare if keys contain values rather than pointers;
introduced new hash-key type flag TCL_HASH_KEY_DIRECT_COMPARE...
I know it is public interface, but the bug is grave, and I don't know how one could fix it without that, by retaining same performance for pointer hashes (e. g. vars, dicts and all of TclObjs).
2024-04-12 21:44:05 +00:00
jan.nijtmans ce060f0575 Add missing documentation for TIP 598 Tcl_WinConvertError 2024-04-12 21:40:07 +00:00
sebres d57677488f amend to [295b0570ff660950]: the bug was fixed incompletely, this is full bug fix now - don't allow direct compare if keys contain values rather than pointers.
introduced new hash-key type flag TCL_HASH_KEY_DIRECT_COMPARE...
I know it is public interface, but the bug is grave, and I don't know how one could fix it without that, by retaining same performance for pointer hashes (e. g. vars, dicts and all of TclObjs).
2024-04-12 21:13:23 +00:00
dgp af8e804f14 Plug mem leak of mcLitIdxs field. 2024-04-12 19:51:09 +00:00
dgp 23c3b4678e Plug memory leak of the mcLiterals field. 2024-04-12 19:47:04 +00:00
dgp 6ac45c8c88 A crude protection against accessing the storage after it has been
freed by a finalization pass.  There are probably better fixes, but this
silences the valgrind memory errors.
2024-04-12 19:37:02 +00:00
dgp 2ebf963e27 One added line that ends the "Conditional jump" errors from valgrind 2024-04-12 19:24:12 +00:00
apnadkarni 591fd24000 Add missing documentation for TIP 598 Tcl_WinConvertError 2024-04-12 17:15:54 +00:00
jan.nijtmans 08af1089b2 In Tcl 9, we don't need "-encoding utf-8" here any more 2024-04-12 16:41:00 +00:00
dkf 06ebbd4c54 Clean up the arith series code, including fixing a memory leak 2024-04-12 16:09:49 +00:00
jan.nijtmans 4d0756c2ef Merge 8.7 (adding "-encoding utf-8") 2024-04-12 15:33:00 +00:00
jan.nijtmans 01b6979fa9 (cherry-pick): Clock not weak; clock strong! 2024-04-12 15:25:48 +00:00
jan.nijtmans 37907b7e83 Merge 8.6. Don't change ActiveCodePage on Windows (yet), that's for 9.0 2024-04-12 15:24:08 +00:00
jan.nijtmans 4ff3c3cf90 Add lot's of "-encoding utf-8" to our own "source" commands: We are becoming more independant from the system encoding. 2024-04-12 15:16:50 +00:00
jan.nijtmans acd94364f5 Since all tools are in utf-8 (actually: ascii), make that explicit 2024-04-12 15:14:43 +00:00
jan.nijtmans ebfd88218c Re-generate tclTomMath.h from tommath.h 2024-04-12 15:12:45 +00:00
dkf 27c296de8e Clock not weak; clock strong! 2024-04-12 14:10:36 +00:00
dkf a00b7d857e Merge 8.7 2024-04-12 14:02:55 +00:00
dkf b10eea39c1 Fixed misleading comment 2024-04-12 14:02:17 +00:00
dkf a27a1067dd Merge 8.7 2024-04-12 13:32:53 +00:00
dkf 5ff4934076 More cleaning up, notably no more symbols starting with _ as they're a reserved 'namespace' 2024-04-12 13:25:25 +00:00
jan.nijtmans 7d59c1efa3 Merge 8.7 2024-04-12 09:47:02 +00:00
jan.nijtmans be3b7eb2d8 Fix panic "loop in ConvertLocalToUTCUsingTable", introduced by previous commit. Some further code cleanup 2024-04-12 09:46:25 +00:00
jan.nijtmans 5689fcb105 Merge 8.7 2024-04-11 20:23:12 +00:00
dkf 9ccdd09570 Clean up the code style of the rest of clock 2024-04-11 16:14:29 +00:00
dkf 8d1a899203 Next stage of migrating things to follow style: clock format support 2024-04-11 15:19:45 +00:00
jan.nijtmans 0561864e5d Merge 8.7 2024-04-11 14:24:11 +00:00
jan.nijtmans 55d6827cef Merge 8.7 2024-04-11 14:09:52 +00:00
jan.nijtmans 221cf8b7dd No need for TCL_OBJTYPE_V0 in Tcl 8.7. Make StrIdxTreeObjType static const. Define TCL_OBJTYPE_V1/TCL_OBJTYPE_V2 for 8.7 2024-04-11 13:55:02 +00:00
dkf acb9f0208a A few more small changes 2024-04-11 13:35:27 +00:00
jan.nijtmans 05c79c7ea9 (cherry-pick): Possibly a fix for [080f846fd58958ef]: When updating the interest of a
channel, don't schedule the channel handler timer if a nonblocking channel
doesn't yet have a buffer or if the buffer is empty or overflowing.  Where
asynchronous connection state is concerned, this should mean that the time
won't be scheduled if the initial connection isn't established.
2024-04-11 13:22:39 +00:00
dkf 6a46e9bdd2 Style cleanup, plus added comments on memory management 2024-04-11 13:19:29 +00:00
jan.nijtmans 5f2f09ff4b Merge 8.6. Use Tcl_NewBooleanObj for booleans; we should say what we mean 2024-04-11 13:15:02 +00:00
jan.nijtmans 3d40f77597 Use Tcl_NewBooleanObj for booleans; we should say what we mean. Fix sentinels and type-casts. 2024-04-11 12:35:07 +00:00
dkf e0977e7999 Style cleanup 2024-04-11 10:54:13 +00:00
dkf e8c7336785 Use Tcl_NewBooleanObj for booleans; we should say what we mean 2024-04-11 08:55:01 +00:00
jan.nijtmans 8e691a3809 Fix [e155cedf33]: Error-handling in TclGetOpenMode() 2024-04-11 08:35:51 +00:00
jan.nijtmans 7e19055265 Add O_ACCMODE fow Windows, in case it is not defined 2024-04-11 08:00:53 +00:00
jan.nijtmans 6d5bb92136 Merge-mark 2024-04-11 07:59:59 +00:00
jan.nijtmans 80d20921f2 Add O_ACCMODE fow Windows, in case it is not defined 2024-04-11 07:59:01 +00:00
jan.nijtmans eebc70a77c Fix [e155cedf33]: Error-handling in TclGetOpenMode().
Add O_ACCMODE fow Windows, in case it is not defined
2024-04-11 07:57:23 +00:00
apnadkarni e95fe92123 Done with consolidating chan related docs except chan copy 2024-04-11 02:27:25 +00:00
apnadkarni db3a23bd25 Start on consolidating chan related docs 2024-04-10 17:52:46 +00:00
apnadkarni 134a80053e Create new branch named "apn-chan-docs" 2024-04-10 17:51:13 +00:00
jan.nijtmans 4bb467b61e One more TclHasInternalRep() 2024-04-10 15:35:05 +00:00
jan.nijtmans e6e32f5b51 Merge 8.7 2024-04-10 15:26:21 +00:00
dgp 92d577799d merge trunk 2024-04-10 15:06:50 +00:00
jan.nijtmans 2ffd22efd1 Merge 8.6 Use TclHasInternalRep() macro in more places. 2024-04-10 14:47:21 +00:00
jan.nijtmans 5c0e1075af [e155cedf33]: Error-handling in TclGetOpenMode() 2024-04-10 13:18:37 +00:00
dkf 4ccfe4eda6 Merge 8.7 2024-04-10 13:03:29 +00:00
dkf dfe9963d73 Use standard macro for freeing the internal rep 2024-04-10 13:01:36 +00:00
jan.nijtmans fdc1bcf721 Tcl_NewBooleanObj() is better here than Tcl_NewIntObj 2024-04-10 12:02:17 +00:00
jan.nijtmans 78e3e645e0 Use O_ACCMODE in stead of the non-standard RW_MODES. Since O_RDONLY|O_WRONLY|O_RDWR aren't necessary separate flags, this is the standard way. 2024-04-10 10:15:53 +00:00
dkf 207f037c82 Merge 8.7 2024-04-09 15:25:48 +00:00
dkf cd2d193b74 Add ability to regenerate tclOOScript.h to Win build 2024-04-09 15:23:22 +00:00
jan.nijtmans 22766f0b3c Update documentation 2024-04-09 15:16:26 +00:00
jan.nijtmans b5cc9acd21 Rebase to trunk 2024-04-09 15:12:15 +00:00
jan.nijtmans 9cd2b514ea Remove Tcl_NewIndexObj/Tcl_SetIndexObj. Since Tcl_Size is signed now, it doesn't add much value any more. 2024-04-09 15:07:59 +00:00
jan.nijtmans bbba987eda Rebase to 9.0 2024-04-09 13:22:27 +00:00
jan.nijtmans 0999fdef52 Merge 8.7 2024-04-09 12:13:20 +00:00
jan.nijtmans 0c765c1a4e TCL_MIN_SECONDS/TCL_MAX_SECONDS should use 'LL', because the constants are > LONG_MAX on 32-bit platforms 2024-04-09 12:05:08 +00:00
jan.nijtmans 8fb9549329 Move new Tcl_GetAliasObj() to slot 285 (old slot was used for Tcl_FreeResult() in 8.x) 2024-04-09 11:14:23 +00:00
jan.nijtmans 4a5fb06990 Rebase to 9.0 2024-04-09 10:47:23 +00:00
jan.nijtmans ba8afe6195 Revive TIP #648 2024-04-08 11:34:43 +00:00
jan.nijtmans cd6c132aa1 Fix [a6fb744b20]: missing file from distribution 2024-04-08 09:34:50 +00:00
jan.nijtmans e17a4a970a Fix [a6fb744b20]: missing file from distribution 2024-04-08 08:29:07 +00:00
sebres 36ded01cd8 merge 8.7 2024-04-06 13:50:14 +00:00
sebres 03a2d33363 more improvements for overflow cases (always proper message, errorCode, correct badOption value) 2024-04-06 13:48:46 +00:00
sebres 1b7781fb7a simple attempt to silence valgrind [167e0635db], improved error message by bad seconds (or -base), repair errorCode (index for badOption), remove unneeded code 2024-04-06 13:20:29 +00:00
jan.nijtmans 6bfe4c6083 Merge-mark 2024-04-05 21:28:40 +00:00
jan.nijtmans 2daa6ec625 Fix [df85199878]: Tcl_SetResult compiler warnings 2024-04-05 21:25:20 +00:00
dgp 5e971db6b6 changes file removal sequel 2024-04-05 15:45:04 +00:00
dgp 18bbed86b9 Delete the changes file pending decisions about TIP 693 2024-04-05 15:39:13 +00:00
dgp 9ec09f9357 dup test names 2024-04-04 23:01:20 +00:00
dgp 4ee729a7c0 merge trunk 2024-04-04 23:00:50 +00:00
jan.nijtmans eb046e78c4 Fix [7cb7409e05]: Tcl_ParseArgsObjv bug with TCL_ARGV_GENFUNC. With testcase 2024-04-04 21:07:50 +00:00
jan.nijtmans 539d2ff95a Fix [7cb7409e05]: Tcl_ParseArgsObjv bug with TCL_ARGV_GENFUNC. With testcase 2024-04-04 20:54:16 +00:00
jan.nijtmans 6eb16ed6ae Fix [7cb7409e05] by backporting tclIndexObj.c from [c3b23bf0c7] 2024-04-04 20:43:08 +00:00
jan.nijtmans 5a8884879e Add testcases for bug [7cb7409e05]: Tcl_ParseArgsObjv bug with TCL_ARGV_GENFUNC. Mark failing testcases with "knownBug" 2024-04-04 20:27:05 +00:00
jan.nijtmans 6ee168d4e0 Tcl_ArgvGenFuncProc: int -> Tcl_Size (twice) 2024-04-04 20:14:07 +00:00
jan.nijtmans 7769b8861e Combine with "testparseargs" command. With testcases now 2024-04-04 20:01:44 +00:00
jan.nijtmans 33e5497461 Merge 8.7 (undid the encodingPtr -> encodingNamePtr change) 2024-04-04 14:25:30 +00:00
jan.nijtmans 70917f72ad Merge 8.6 2024-04-04 13:32:33 +00:00
jan.nijtmans 96ba124114 Backout [0a9ae478ac], as requested 2024-04-04 13:06:32 +00:00
jan.nijtmans bd12eef080 Merge 8.7. encodingPtr -> encodingNamePtr (for consistency) 2024-04-04 12:35:02 +00:00
pooryorick c0279cc641 Possibly a fix for [080f846fd58958ef]: When updating the interest of a
channel, don't schedule the channel handler timer if a nonblocking channel
doesn't yet have a buffer or if the buffer is empty or overflowing.  Where
asynchronous connection state is concerned, this should mean that the time
won't be scheduled if the initial connection isn't established.
2024-04-04 11:50:51 +00:00
jan.nijtmans 1fbedd426d Merge 8.6 2024-04-04 11:44:49 +00:00
jan.nijtmans de370ec863 Tcl_GetString() -> TclGetString(), for minor speedup. 2024-04-04 11:09:44 +00:00
jan.nijtmans ba5afcca15 encodingName -> encoding (where appropriate) 2024-04-04 10:52:57 +00:00
jan.nijtmans 48a19154a3 Add "testparseargsobj" command. Testcases to be added 2024-04-03 22:21:47 +00:00
jan.nijtmans 62283a0a4b Proposed fix for [7cb7409e05]: Tcl_ParseArgsObjv bug with TCL_ARGV_GENFUNC 2024-04-03 22:09:01 +00:00
sebres 0ca975c075 merge 8.7 (closes [dc0770a2397ae0b1]) 2024-04-03 18:51:35 +00:00
sebres 86987b672b fixed [dc0770a2397ae0b1]: tests are timezone independent now 2024-04-03 18:49:41 +00:00
jan.nijtmans 70dab4933d Merge 8.7 2024-04-02 22:04:14 +00:00
jan.nijtmans 1e5de4f5f4 Merge 8.6 2024-04-02 21:50:47 +00:00
jan.nijtmans 4d685e743e Backport [https://core.tcl-lang.org/tcl/timeline?r=argx_rejig|argx_rejig] branch. This should fix "PwnKit" (CVE-2021-4034) for Tcl 2024-04-02 21:39:05 +00:00
jan.nijtmans 96e8a65bea Simplify Tcl_SetStartupScript() a little bit: no need to check for NULL twice. Test for != NULL consistently 2024-04-02 20:46:55 +00:00
jan.nijtmans 1661066b2c Merge 8.7 (removing some dead libtommath-related code) 2024-04-02 13:49:08 +00:00
jan.nijtmans 062a4458df Merge 8.6 2024-04-02 11:13:34 +00:00
jan.nijtmans 435d68de75 Update to libtommath-1.3 (but keep Tcl 8.6-specific tweaks) 2024-04-02 08:01:43 +00:00
jan.nijtmans 6f8f7c31eb Rebase to 9.0 2024-04-01 21:33:52 +00:00
jan.nijtmans c60ff7c67b Merge 9.0 2024-04-01 20:48:23 +00:00
jan.nijtmans bfa6e2e15d Oops, ckalloc -> Tcl_Alloc 2024-04-01 20:07:23 +00:00
jan.nijtmans 8912060cdc TIP 688: clock command revision and speedup 2024-04-01 19:56:29 +00:00
jan.nijtmans 0670a7bc01 TIP 688: clock command revision and speedup 2024-04-01 18:36:35 +00:00
jan.nijtmans e1870dc501 Update tommath.h/tommath_private.h too 2024-04-01 18:07:53 +00:00
jan.nijtmans 441ac7168a More progress 2024-03-31 22:17:46 +00:00
jan.nijtmans b72c29a89e Make a start, upgrading to libtommath 1.3 2024-03-31 00:01:14 +00:00
jan.nijtmans 2c1cd785d3 Merge-mark 2024-03-30 14:48:38 +00:00
jan.nijtmans b6408f7dfc Remove all libtommath source-files, which are not used in Tcl. Don't bother about them any more 2024-03-30 14:24:40 +00:00
jan.nijtmans a478f93fda 4 more files, which should have been removed as part of the libtommath 1.2 -> 1.3 upgrade 2024-03-29 15:43:36 +00:00
jan.nijtmans bf1236013f 4 more files, which should have been removed as part of the libtommath 1.2 -> 1.3 upgrade 2024-03-29 15:42:29 +00:00
jan.nijtmans 564f0e0e6d Merge 8.7 2024-03-29 14:22:40 +00:00
jan.nijtmans a35d237b46 Merge 8.6. Rename some (internal) libtommath stub entries (back to the same name as in Tcl 8.6) 2024-03-29 14:20:01 +00:00
jan.nijtmans 429c699cbb (cherry-pick) Added minor detail to file attr -shortname handling docs. 2024-03-29 13:22:41 +00:00
jan.nijtmans 6b04bd386f Remove libtommath/makefile* and related: Those files suggest anything can be built in this directory, it cannot.
Allow mp_expt_n to be used in extensions in stead of mp_expt_d (following rename in libtommath 1.2 -> 1.3)
Remove some libtommath C-files, which are not used at all.
2024-03-29 13:20:06 +00:00
jan.nijtmans 02fa94a82f Upgrade provided libtommath with version 1.3. Still works with external libtommath 1.2 too. 2024-03-29 12:26:11 +00:00
apnadkarni ae6f158a64 Added minor detail to file attr -shortname handling docs. 2024-03-29 11:47:32 +00:00
jan.nijtmans 0d2c778825 Upgrade provided libtommath with version 1.3. Still works with external libtommath 1.2 too. 2024-03-29 08:53:13 +00:00
jan.nijtmans a518558cbc Eliminate tcltest::fileEncoding, not a good idea 2024-03-28 21:46:38 +00:00
jan.nijtmans cd4b8266bc Merge 8.6 2024-03-28 21:39:54 +00:00
jan.nijtmans e9198f72c7 Asciify string.test. tcltest::fileEncoding is thus no longer necessary (which would have performance effect for _all_ testcases) 2024-03-28 21:12:46 +00:00
jan.nijtmans a201b1c1c4 Fix windows build 2024-03-28 15:52:10 +00:00
jan.nijtmans b85e550f93 Take care of the deprecation of mp_expt_u32 2024-03-28 14:16:02 +00:00
jan.nijtmans 402e47970b C++ improvements/typo's 2024-03-28 12:51:50 +00:00
jan.nijtmans 075caaccba Re-build libtommath.dll for x86. Re-build tommath.lib for all platforms (since libtommath 1.3 has more symbols) 2024-03-28 09:50:22 +00:00
jan.nijtmans 471032ae68 Libtommath 1.3 2024-03-27 20:54:34 +00:00
sebres 13c488ebd2 merge 8.7 (conflicts solved, merge point) 2024-03-27 20:43:28 +00:00
sebres 205e41bcdd fixes SF [edb4b065f49b9e51]: cherry-picked from 5d52c6d7302b320e] 2024-03-27 20:18:32 +00:00
sebres 6ac8e680a7 merge 8.6 (string tests, also illustrating bug [edb4b065f49b9e51]) 2024-03-27 20:13:25 +00:00
sebres 9b755e2674 tests renumeration 2024-03-27 20:09:48 +00:00
sebres 0897b99059 tests/string.test: cherry-pick several string-tests from trunk to 8.6, added encoding mark (utf-8), make few tests 8.6 compatible 2024-03-27 19:59:47 +00:00
sebres aca10b0c65 tcltest: detect encoding of test-file (BOM or coding in header) and supply it to source/shell,
so allows the tests be platform- and tcl-version independent
2024-03-27 19:52:59 +00:00
apnadkarni 358a681be3 Fix [edb4b065f4] - crash on string compare 2024-03-27 17:41:21 +00:00
apnadkarni 6f10e3c7f3 Proposed fix for [edb4b065f4] 2024-03-27 16:14:38 +00:00
apnadkarni a08d22d36c Tests for [edb4b065f49] crash. 2024-03-27 15:46:06 +00:00
jan.nijtmans b31857f4b1 Add koi8-ru and koi8-t encodings 2024-03-27 09:55:27 +00:00
jan.nijtmans c807854b0c Add koi8-ru and koi8-t encodings 2024-03-27 09:49:21 +00:00
sebres 7f782853a9 added missing test coverage for clock ensemble in safe-interpreter (shared from parent interpreter) 2024-03-26 17:37:58 +00:00
jan.nijtmans c3d2c3bacb Add koi8-ru and koi8-t encodings, completing the 4 "koi8" encodings available in iconv. 2024-03-26 13:06:33 +00:00
sebres 0c9ff034f2 fixes mem-leak introduced in [06b7ba18bdd9c2c3] (move of configure to unsupported) 2024-03-25 20:22:59 +00:00
dgp 5de7feb5b4 open release branch 2024-03-25 18:21:32 +00:00
jan.nijtmans c0486b6292 (cherry-pick): Change Tcl_ExternalToUtfDStringEx and Tcl_UtfToExternalDStringEx to ignore START/END
flags as stated in documentation instead of raising an error.
2024-03-24 18:05:07 +00:00
jan.nijtmans 7a29d65e93 Merge 9.0. Please don't use "register" keyword 2024-03-24 17:55:08 +00:00
sebres 9d08843270 TCL_MEM_DEBUG build: disable cache/storage-GC for released clock scan/format objects 2024-03-24 17:01:35 +00:00
sebres 0fdf76249a review and more optimizations (cherry-pick from tclclockmod) 2024-03-24 16:54:40 +00:00
sebres fb4109fcf1 still one fix for [1f40aa83c552f597], now for freescan (overflow in tests clock-6.10e/clock-6.10f): rewritten with common str2int now 2024-03-24 16:37:19 +00:00
apnadkarni 2c6aefa2ab Change Tcl_ExternalToUtfDStringEx and Tcl_UtfToExternalDStringEx to ignore START/END
flags as stated in documentation instead of raising an error.
2024-03-24 16:27:50 +00:00
pooryorick 19e5b1166e A new test constraint, "bigmem", configurable via the environment variable
TCL_TESTCONSTRAINT_BIGMEM, to bypass tests that require large amounts of
memory.
2024-03-24 00:05:49 +00:00
pooryorick e5ce6c02c6 A new test constraint, "bigmem", configurable via the environment variable
TCL_TESTCONSTRAINT_BIGMEM, to bypass tests that require large amounts of
memory.
2024-03-23 23:34:58 +00:00
jan.nijtmans 7204821dbf Merge 8.7 2024-03-23 22:32:41 +00:00
jan.nijtmans ceadda7ecc Merge-mark 2024-03-23 22:06:08 +00:00
jan.nijtmans 3e75600e5c Update genStubs.tcl, making it usable for Tcl 9 as well 2024-03-23 22:01:48 +00:00
jan.nijtmans da3ce0688b Backport formatting from 9.0. Revise genStubs.tcl such that dummy entries are only generated for Tcl 8.x, not for 9.0 2024-03-23 18:17:28 +00:00
jan.nijtmans 751bc99ae3 Revise clock-6.10c? testcases 2024-03-23 13:28:46 +00:00
sebres 7bf2e0d35c small amend (unsaved change) 2024-03-22 20:07:26 +00:00
sebres 37b65d5971 fix for [1f40aa83c552f597]: the overflow check could mistakenly pass in some cases (so basically expects div 10 to check it properly);
optimizes both str2int, since we don't need to check it for most cases at all, thus definitely faster now (O(n)+O(1) vs. O(n)+O(n) and also has fewer branch mispredictions).
2024-03-22 19:15:30 +00:00
jan.nijtmans e3e7e3bb4b There are no testcases showing overflow in _str2int() 2024-03-22 14:19:54 +00:00
jan.nijtmans f53107854d Merge 9.0 2024-03-22 14:07:39 +00:00
jan.nijtmans 92ea491e1d Merge 8.7 2024-03-22 13:42:19 +00:00
jan.nijtmans 28573421f8 Mark clock-6.10b/clock-6.10d as "knownBug": Those testcases crash with CFLAGS=-ftrapv, even with current clock code. 2024-03-22 13:41:36 +00:00
jan.nijtmans 2a73478b44 Add more testcases, 0-measurement of current behavior. integervalueTooLarge -> dateTooLarge. 2024-03-22 13:06:51 +00:00
jan.nijtmans a85181bdcc Add testcase for bug [1f40aa83c5]: crash with CFLAGS=-ftrapv 2024-03-22 09:03:38 +00:00
jan.nijtmans 29080aaa9a Merge 8.7. Tcl_GetStringFromObj() -> TclGetStringFromObj() (optimization) 2024-03-21 13:55:11 +00:00
jan.nijtmans 3fd7f1aa14 Formatting/indenting 2024-03-21 12:57:21 +00:00
jan.nijtmans be7f5c536c Merge 8.7 2024-03-21 10:33:18 +00:00
jan.nijtmans cbce4bcf9f Merge 8.6 2024-03-21 10:31:56 +00:00
jan.nijtmans ea04e84787 Rebase to latest 9.0 2024-03-21 10:21:12 +00:00
jan.nijtmans 9a13636dfc Unneeded line 2024-03-21 10:20:09 +00:00
sebres 8197ed757c more lsearch performance tests 2024-03-21 00:27:29 +00:00
jan.nijtmans 7148cbe60d put back line accidently removed 2024-03-20 20:40:56 +00:00
jan.nijtmans 8af92a8a6b Fix [6811a00819]: lsearch performance degradation on Tcl 8.6.11 release (thanks, Sergey!) 2024-03-20 20:29:25 +00:00
jan.nijtmans ab2ee17c91 Fix [6811a00819]: lsearch performance degradation on Tcl 8.6.11 release (thanks, Sergey!) 2024-03-20 20:09:29 +00:00
sebres 30f26cff8b optimize TclUtfToUCS4 for single code units (non high surrogates), especially for ascii; fixes performance regression [6811a0081940b76c] 2024-03-20 17:56:25 +00:00
sebres 4d5b75e119 small amend (incorrect copy&paste removed) 2024-03-20 16:39:12 +00:00
sebres 51726860a5 added performance regression tests for list facilities (initially only few lsearch cases, illustrating [6811a0081940b76c]) 2024-03-20 16:37:22 +00:00
jan.nijtmans 929e15dbcb Review: use Tcl_Size for "length" in tclStrIdxTree.h. Macro tweaks. 2024-03-20 15:01:42 +00:00
dgp c820318356 dup test name 2024-03-20 14:48:44 +00:00
dgp db2c4a21b2 dup test name 2024-03-20 14:42:16 +00:00
jan.nijtmans 35abedb75b Merge 9.0 2024-03-20 14:27:21 +00:00
jan.nijtmans ae22ee577e Few more spacing/formatting tweaks 2024-03-20 13:49:02 +00:00
jan.nijtmans a9b046b5bd (backport) more spacing/formatting tweaks. For now, macosx/unix/win only. 2024-03-20 13:14:26 +00:00
jan.nijtmans 7a03b3c1ce TIP #690 implementation: Make "clock scan -valid 1" the default 2024-03-20 09:33:21 +00:00
jan.nijtmans 72e5911a9e Rebase to latest 9.0 2024-03-20 08:24:17 +00:00
dkf a72c1f969c more spacing/formatting tweaks 2024-03-19 17:09:30 +00:00
jan.nijtmans 1f9225ecf5 Merge 8.7 (Some Tcl_GetStringFromObj -> TclGetStringFromObj internal changes) 2024-03-19 16:43:41 +00:00
jan.nijtmans 7208478d1c Backport fix for [bda99f2393]: gets stdin problem when non-blocking - Windows
(cherry-pick): Fix indentation/brace usage style issues
2024-03-19 16:12:00 +00:00
dkf 16b3adf662 Fix indentation/brace usage style issues 2024-03-19 14:56:45 +00:00
jan.nijtmans afb6b82ad4 (cherry-pick) docs - note that Tcl_AsyncMark() and Tcl_AsyncDelete() are actually void funcs 2024-03-19 08:09:13 +00:00
bch 7bf9d79d60 docs - note that Tcl_AsyncMark() and Tcl_AsyncDelete() are actually void funcs 2024-03-18 20:33:55 +00:00
jan.nijtmans ba19235869 Review: use more "LL". Eliminate some (Tcl_WideInt) typecasts. 2024-03-18 16:18:00 +00:00
jan.nijtmans e0d3f5baa9 Now _really_ remove TIP #689 2024-03-18 11:59:02 +00:00
jan.nijtmans 877d7934df TIP #688 implementation. Same as "sebres-9-0-clock-speedup-cr2-no-configure", but without TIP #689's "unknown" handler. 2024-03-18 11:04:07 +00:00
jan.nijtmans 907b916cca Move "::tcl::clock::configure" to the tcl::unsupported namespace 2024-03-18 10:31:58 +00:00
jan.nijtmans 3734b92b95 Make "clock configure" an internal command "::tcl::clock::configure" 2024-03-18 09:26:46 +00:00
jan.nijtmans 2bde4e6f18 Rebase to TIP #689 branch 2024-03-18 09:00:00 +00:00
jan.nijtmans 5a67d804a5 Rebase to latest trunk 2024-03-18 08:51:51 +00:00
jan.nijtmans 6322439294 For now, revert TIP #689 implementation, until it's accepted. 2024-03-18 08:47:45 +00:00
jan.nijtmans 20547771bb For now, revert TIP #689 implementation, until it's accepted. 2024-03-18 08:46:29 +00:00
jan.nijtmans 7d9b7ddc2d Merge 8.7 2024-03-17 23:31:46 +00:00
jan.nijtmans 8c64a9f5a9 More int -> Tcl_Size 2024-03-17 23:20:46 +00:00
sebres 9e8125626b review: registry loaded by first usage, no mc command needed (uses mcget instead, for merged dicts) 2024-03-17 12:13:43 +00:00
jan.nijtmans c4333327b2 Review: Unnecessary use of 'L', TABLE.value: int is enough, making smaller tables 2024-03-15 20:24:10 +00:00
jan.nijtmans 2a9e281535 Better solution for tclDate.c (since Number is not an int) 2024-03-15 16:16:39 +00:00
sebres f81c7c6208 fixes [1f40aa83c552f597]: suppress integer-overflow trapping (atm, GCC "trapv" only) for intended pieces, avoid unexpected app-crash;
test cases (knownBug) reverted.
2024-03-15 14:14:47 +00:00
jan.nijtmans 18c9584ff3 Merge 8.7 2024-03-15 13:42:47 +00:00
jan.nijtmans 40dd498118 Merge 8.6 2024-03-15 13:42:06 +00:00
jan.nijtmans 17807e3c2d Fix "encoding convertfrom koi8-u \xB4". Should be Є, not Ѓ. See [f23022e07a]. 2024-03-15 13:41:07 +00:00
jan.nijtmans a20d3aea07 Mark 4 "clock" testcases with "knownBug". Ticket [1f40aa83c5] describes the details. 2024-03-15 12:38:17 +00:00
sebres eca80fee12 don't overwrite last setup-tz cache via gmt-tz (special case) 2024-03-15 02:05:18 +00:00
sebres 1bd781e1f9 clock.test: tests renumeration, solve inaesthetic results of merges 2024-03-14 23:30:34 +00:00
sebres 627f79fd04 make clock tests system-TZ independent 2024-03-14 21:41:31 +00:00
sebres 8ca8455da2 validation check: fixed time point of first stage - it must work TZ independently (the conversion of local time to UTC may adjust date/time tokens); 2024-03-14 20:55:49 +00:00
jan.nijtmans 68c0e9ab61 Merge 9.0 2024-03-13 17:30:21 +00:00
jan.nijtmans 5c1b3920a9 Merge 9.0 2024-03-13 17:11:52 +00:00
sebres 0f486d81b9 better test-mockup, don't disclose artificially skipped test for valid mode 2024-03-13 14:13:57 +00:00
jan.nijtmans d6f35919d6 Rebase to latest 9.0 2024-03-13 09:56:35 +00:00
jan.nijtmans 82d693e6a1 Merge-mark 2024-03-13 09:48:11 +00:00
jan.nijtmans 9cc68bccbf Restore TclListObjLength()/TclListObjGetElements() macro's, as they were in 8.6 2024-03-13 09:45:57 +00:00
sebres b42cb3621e compat regression test: original clock ensemble supports prefixes 2024-03-13 01:03:10 +00:00
jan.nijtmans 86d2fcbe34 Merge 8.7 2024-03-13 00:14:36 +00:00
sebres 8be245967e partially revert f665afd65ee7a5f9 (INST_INVOKE_REPLACE/CMD_COMPILE_TO_INVOKED), ensemble compiled in configure -init-complete (only for clock) 2024-03-13 00:01:26 +00:00
jan.nijtmans 26619872a6 Merge 8.6 2024-03-12 23:41:50 +00:00
jan.nijtmans a12b9422df tcltest 2.5.7 -> 2.5.8 2024-03-12 23:13:18 +00:00
jan.nijtmans cefc33afd3 Code cleanup, no change in functionality. All backported from 8.7/9.0 2024-03-12 23:07:29 +00:00
sebres d0afd28715 fixes [1acd172c424b57c9]: restored ensemble compilation, fixed TCL_ENSEMBLE_PREFIX (restores default), fixed compiled INST_INVOKE_REPLACE for ensembles by CMD_COMPILE_TO_INVOKED flag 2024-03-12 21:44:21 +00:00
sebres cf959ef65f small amend (forgotten TclListObjGetElementsM -> TclListObjGetElements) 2024-03-12 21:39:39 +00:00
jan.nijtmans 9923d0e4e6 Merge 9.0 2024-03-12 21:33:48 +00:00
jan.nijtmans 3b079f137c Restore TclListObjGetElements()/TclListObjLength() as they were in 8.6 too. 2024-03-12 21:24:14 +00:00
sebres 8e00e935b5 skip extensive IO-aggressive tests, be gentle with users and CIs env (especially SSD, let alone our surroundings) 2024-03-12 19:03:45 +00:00
sebres 2e9d1d0e80 proper skip of test winFCmd-1.38 (no error reaching limit of 50K unique file-ids) 2024-03-12 18:15:48 +00:00
sebres fab376647f fixed path for running of suite from temp-directory (also proper skip if no dlls available) 2024-03-12 18:01:17 +00:00
jan.nijtmans 648f2bd64b Merge 9.0 2024-03-12 09:09:05 +00:00
jan.nijtmans b2a2806381 Restore the TclGetStringFromObj() macro in tclInt.h as it was in 8.6/8.7 2024-03-12 08:56:08 +00:00
sebres bbb5940489 merge sebres-8-6-clock-speedup-cr2 2024-03-12 02:05:58 +00:00
sebres 1310cb5ded fixes similar issue by free scan + more tests 2024-03-12 01:50:32 +00:00
sebres fad9db2aa8 fixes #23: clock add regression (integer overflow in time part) 2024-03-12 01:48:02 +00:00
sebres dccb8e0210 test cases covering #23: clock add regression (due to integer overflow) 2024-03-12 01:43:30 +00:00
sebres 67e1991b2c replace sprintf with itoaw 2024-03-12 01:43:03 +00:00
sebres e89c1b97a2 more optimizations of numeric to regular TZ conversion (for non GMT offsets) 2024-03-12 01:37:39 +00:00
sebres e3b1e45937 optimize simplest case if numeric timezone is 0000 (so GMT/UTC) 2024-03-12 01:36:28 +00:00
sebres 83a74db91d consider TZ-epoch in base-cache (ensure cache of base is correct for :localtime if TZ changing) 2024-03-12 01:33:38 +00:00
sebres ec9410157e tests to ensure cache of base is correct for :localtime if TZ-env changing 2024-03-12 01:21:47 +00:00
jan.nijtmans 8be2c4bdbc Merge-mark 2024-03-11 22:06:04 +00:00
jan.nijtmans a5c62db265 Merge 8.7 2024-03-11 22:03:34 +00:00
jan.nijtmans 247684d371 Merge 8.6 2024-03-11 22:01:18 +00:00
jan.nijtmans cbf77a2d94 Add "Alaska Standard/Daylight" time to tclDate.c 2024-03-11 21:56:33 +00:00
jan.nijtmans 5d124f01ad Upgrade bison to latest version (3.8.2) 2024-03-11 21:36:37 +00:00
jan.nijtmans 14726be34f Merge 8.7. Upgrade bison to latest version (3.8.2) 2024-03-11 21:21:54 +00:00
jan.nijtmans 4492d2296e Merge 8.6. Upgrade bison to latest version (3.8.2) 2024-03-11 20:30:07 +00:00
jan.nijtmans 0950506d5a Unneeded "file normalize" 2024-03-11 15:53:28 +00:00
sebres a29e93afaa load clock-stubs dynamically with namespace unknown (no auto-index needed) 2024-03-11 15:14:51 +00:00
jan.nijtmans 58bfbceed1 more int -> Tcl_Size 2024-03-11 13:31:46 +00:00
jan.nijtmans 959e7f005e Use {} in expr. Enable no_tclclockmod testcase 2024-03-11 11:55:58 +00:00
jan.nijtmans 483419fdf8 Rebase to 9.0 2024-03-11 11:06:28 +00:00
jan.nijtmans b98b592315 Fix [1acd172c424b57c9] (by just reverting the change causing this). Not crucial for TIP #688. Also, make it compile/run using -DTCL_NO_DEPRECATED=1 2024-03-11 11:02:19 +00:00
jan.nijtmans d3c1221322 Merge 9.0. Misc improvements from 9.0 branch (which were lost in this branch) 2024-03-10 22:43:24 +00:00
jan.nijtmans 5151f841c6 Merge 8.7 2024-03-10 21:23:37 +00:00
jan.nijtmans 212886f518 GetMonthDay() improvements (from sebres-9-0-clock-speedup-cr2 branch). Some int -> TclWideInt or int -> Tcl_Size 2024-03-10 21:12:11 +00:00
jan.nijtmans bd53a4723d Merge 9.0 2024-03-10 17:14:47 +00:00
jan.nijtmans 66cc680d51 Merge 8.7 2024-03-10 16:57:02 +00:00
jan.nijtmans b022e7e4df Merge 8.6 2024-03-10 16:51:35 +00:00
jan.nijtmans 74f9de77ec Re-generate library/tclIndex (especially "safe" namespace had some changes which were not reflected in this tclIndex still) 2024-03-10 15:49:34 +00:00
jan.nijtmans ee8f7ce1a9 Merge 9.0. Add ::tcl::clock to library/tclIndex 2024-03-10 15:03:05 +00:00
jan.nijtmans 2424562935 Fix [910d67a229fe7f65]: NS-qualified invocations of command evade [namespace unknown] 2024-03-10 13:04:36 +00:00
jan.nijtmans b39d8850d6 Fix [910d67a229fe7f65]: NS-qualified invocations of command evade [namespace unknown] 2024-03-10 11:27:02 +00:00
jan.nijtmans 5ab4e69501 Remove Tcl_GetAlias() 2024-03-10 00:16:00 +00:00
jan.nijtmans 57ec557753 re-generate tclOOScript.h, and fix testcase 2024-03-09 23:53:23 +00:00
jan.nijtmans c4d78b5473 fix testcase 2024-03-09 23:47:52 +00:00
jan.nijtmans 85c5123bcf (backport): Corrections to TclOO errorcodes from scripted parts 2024-03-09 22:56:44 +00:00
dkf 62b601ba45 Corrections to TclOO errorcodes from scripted parts 2024-03-08 15:32:58 +00:00
jan.nijtmans c42145fb01 Add Tcl_GetAlias/Tcl_GetAliasObj to TIP #616 2024-03-08 15:15:51 +00:00
sebres de7fa6e02c namespace unknown considers also alternate search path (relative global NS), see namespace-52.14 2024-03-08 13:40:57 +00:00
sebres c45c0e9d7f TclGetNamespaceForQualName: TCL_FIND_IF_NOT_SIMPLE considers alternate search path too 2024-03-08 13:37:44 +00:00
sebres e2289c9ee3 merge 8.7 2024-03-08 13:35:50 +00:00
sebres 2f4b14eb62 merge 8.6 2024-03-08 13:31:41 +00:00
sebres 17b2152b59 TclGetNamespaceForQualName: TCL_FIND_IF_NOT_SIMPLE considers alternate search path too 2024-03-08 13:30:18 +00:00
jan.nijtmans 0b40de9632 Merge 9.0 2024-03-08 11:34:51 +00:00
jan.nijtmans 9f323759ed Merge 8.7 2024-03-08 11:33:43 +00:00
jan.nijtmans 0f4cecde6f typo's 2024-03-08 11:31:50 +00:00
jan.nijtmans 8008686fcf Merge 9.0 2024-03-08 10:34:22 +00:00
jan.nijtmans 4d2d3aed4a Remove dead code 2024-03-08 10:04:57 +00:00
jan.nijtmans 25c255bdd9 Rebase to 9.0 2024-03-07 22:55:11 +00:00
jan.nijtmans ad3fd8f4a2 Merge 8.7 2024-03-07 22:49:42 +00:00
jan.nijtmans b63728d344 Merge 8.6 2024-03-07 22:17:45 +00:00
jan.nijtmans 710fa5935d Add internal flag TCL_FIND_IF_NOT_SIMPLE for (internal) TclGetNamespaceForQualName(). Not used yet. 2024-03-07 21:58:26 +00:00
jan.nijtmans 4e5e3b0ad6 Code cleanup/formatting 2024-03-07 21:42:24 +00:00
sebres f85c92590f merge 8.7 (BF [a9625d1f53554f9d]) 2024-03-07 11:25:40 +00:00
sebres e994a261ab fixes segfault [a9625d1f53554f9d]: elemObj used uninitialized, lindex on lseq wo args must return whole list 2024-03-07 11:21:03 +00:00
sebres 54bcb0d932 core review 2024-03-06 21:44:10 +00:00
sebres 24dc4df4b8 small amend: simpler traversing using ns->parentPtr 2024-03-06 21:29:40 +00:00
jan.nijtmans 2e8f7eda12 Reduce code duplication (borrowed from "bug-910d67a229fe7f65" branch, but independant from any bug) 2024-03-06 21:11:37 +00:00
sebres 2cce3b9676 better variant of fix for [910d67a229fe7f65] with improved search for NS::command (find NS even if command is not simple name), additionally
it'd invoke handler of parent NS if child NS doesn't have unknown handler (see test namespace-52.14)
2024-03-06 19:22:10 +00:00
jan.nijtmans 59b8d7b46b Merge 8.7 2024-03-06 15:08:43 +00:00
jan.nijtmans 03f7d8bcf1 Merge 8.6 2024-03-06 15:01:06 +00:00
jan.nijtmans a8475d1b0d Backport "changes" changes from 8.7 2024-03-06 14:59:22 +00:00
sebres c0d1bb1fb7 small amend to [910d67a229fe7f65]: additional corner case (see the test namespace-52.13) 2024-03-06 12:05:31 +00:00
jan.nijtmans 00b2997eb8 Merge-mark 2024-03-06 10:06:21 +00:00
jan.nijtmans 4e9e174615 a6 -> b1, as preparation for possible release (hopefully, one day) 2024-03-06 10:04:47 +00:00
jan.nijtmans 2a0bf91c8e Merge 9.0 2024-03-05 22:03:23 +00:00
sebres d0e41d2bc3 fix for [910d67a229fe7f65]: search of namespace unknown handler fixed: first try to find namespace unknown handler of the namespace of executed command if available;
this elementary fixes following bug (additionally prevents to call slowly global "::unknown" for known/loaded namespaces with registered unknown handler)
2024-03-05 16:38:57 +00:00
jan.nijtmans 2c13faac42 b1 -> b2 (preparation for release) 2024-03-05 16:12:04 +00:00
jan.nijtmans a231511532 Merge 8.7 2024-03-05 10:23:35 +00:00
jan.nijtmans 6a8794f0aa Merge 8.6 2024-03-05 10:12:41 +00:00
jan.nijtmans f05d8caa97 Minor addition to [1b8a893ded]: On Windows, fill TCL_PACKAGE_PATH (in tclConfig.sh) with "${prefix}\lib" (even though it isn't actually used on Windows) 2024-03-05 09:39:13 +00:00
jan.nijtmans be54921b1c Merge 9.0 2024-03-04 21:01:41 +00:00
jan.nijtmans 096f3c3d71 Merge 8.7 2024-03-04 20:58:25 +00:00
jan.nijtmans acf8badcb6 Merge 8.6 2024-03-04 20:30:24 +00:00
jan.nijtmans 83078d0be3 (minor) fix for [1b8a893ded]: TCL_PACKAGE_PATH path is (wrongly) braced 2024-03-04 20:10:52 +00:00
jan.nijtmans a38272a24a Merge 8.6. TCL_PACKAGE_PATH is not used on Windows 2024-03-04 19:56:28 +00:00
jan.nijtmans 140c604564 Add akst/akdt (Alaska) time-zones to "clock" command. Also 'stolen' from "sebres-?-?-clock-speedup-cr2" branch 2024-03-04 15:47:31 +00:00
jan.nijtmans 5b3786125b Merge 9.0 2024-03-04 15:09:02 +00:00
jan.nijtmans a5c99ff3f8 Merge 8.7 2024-03-04 14:50:02 +00:00
jan.nijtmans d5ef0adb9a Tweak error-message. Remove pre-7.5 Tcl code. 2024-03-04 14:47:35 +00:00
jan.nijtmans 8499ebcb18 Merge 9.0 2024-03-04 13:37:36 +00:00
jan.nijtmans f7829afaab Merge 8.7 2024-03-04 13:34:26 +00:00
jan.nijtmans 65cf4531a3 Merge 8.6 2024-03-04 13:31:25 +00:00
jan.nijtmans 3910fc59f0 Code cleanup in init.tcl, 'stolen' from sebres-?-?-clock-speedup-cr2. No change in functionality 2024-03-04 12:48:28 +00:00
oehhar 8714979269 Minimize diff to main branch by comment correction 2024-03-04 11:09:49 +00:00
oehhar 07323b0f29 Merge current main branch 2024-03-04 11:00:06 +00:00
jan.nijtmans a6835076ce If TCL_PACKAGE_PATH is set explicitly, don't change it in "configure" 2024-03-04 10:36:23 +00:00
jan.nijtmans a3bbe06dd8 Small (related) fix to handling of TCL_MODULE_PATH: It's a Tcl list too, so it could contain '{'/'}' 2024-03-04 10:22:42 +00:00
jan.nijtmans 76dad5485f Proposed fix for [1b8a893ded]: TCL_PACKAGE_PATH path is (wrongly) braced. 2024-03-04 09:40:28 +00:00
jan.nijtmans 423d8bf1e3 Merge 8.7 2024-03-03 21:48:04 +00:00
jan.nijtmans 589a1466ad Merge 8.6 2024-03-03 21:42:59 +00:00
jan.nijtmans 35d520ab83 Fix [d63061a1ac]: PRIVATE != CONTROL in Unicode 2024-03-03 21:30:39 +00:00
jan.nijtmans 536509d825 Remove private characters from regexp control table, but add them back in [:cntrl:] class (so no change in regexp handling). Eliminated (size_t) type-casts. Backported from 8.7 2024-03-03 14:41:48 +00:00
dkf 5f715465b1 Add missing Tcl_NextHashEntry 2024-03-02 16:23:38 +00:00
dgp 43f826e353 merge release 2024-02-28 21:05:40 +00:00
sebres dec80af27b merge 8.7 2024-02-28 10:02:05 +00:00
sebres 7e734ace3b fixes [e02798626dfbcd7b] - close regression introduced by TIP#490 causing too slow eval of mc command for non-class namespaces (speed-up msgcat and clock packages) 2024-02-28 10:00:47 +00:00
oehhar 6ddb50e8f5 Merge mark 2024-02-27 20:33:04 +00:00
oehhar 4cbd1a29af Merge mark 2024-02-27 20:31:06 +00:00
oehhar 6b331d7209 Bug [f91ab723f3] : remove Windows 16 bit dead code 2024-02-27 20:23:29 +00:00
sebres 8da27abc6c small amend for better readability (no RE needed, faster utf prefix compare) 2024-02-27 18:21:33 +00:00
sebres 9c1f4a6184 amend to [e02798626dfbcd7b]: speed-up ::tcl::clock::mc a little bit (uses msgcat::mcn internally instead of msgcat::mc) 2024-02-27 16:07:20 +00:00
sebres 2469974681 fixes [e02798626d]: close regression introduced by TIP#490 causing too slow eval of mc command for non-class namespaces (probably by shimmering of something NS-related across ::msgcat::PackageNamespaceGet) 2024-02-27 15:58:23 +00:00
jan.nijtmans 5c1edaba5f Merge 8.7 2024-02-27 14:17:02 +00:00
jan.nijtmans e4c5dbbead Some more int -> Tcl_Size 2024-02-27 13:53:01 +00:00
jan.nijtmans 99609e43fa Merge 8.7. Re-generate tclDecls.h. 2024-02-27 12:28:19 +00:00
jan.nijtmans ae1c07653e TclWinGetPlatformId is defined twice. Re-generate tclDecls.h 2024-02-27 12:10:04 +00:00
oehhar 0c1f9e6fcd clock requires msgcat 1.7, not 1.6 as minimum 2024-02-27 07:08:15 +00:00
oehhar 303c6fdb95 Bug [f91ab723]: MS-WIN: remove dead code as TclWinGetPlatformId() constantly returns "VER_PLATFORM_WIN32_NT". 2024-02-26 13:56:52 +00:00
jan.nijtmans e519681e7d One more little tweak missing 2024-02-26 13:25:20 +00:00
jan.nijtmans 57415f38a0 (cherry-pick) More tweaks 2024-02-26 13:20:40 +00:00
jan.nijtmans dc7fb8c360 More tweaks 2024-02-26 13:04:02 +00:00
jan.nijtmans 536c1b08e8 Rebase to latest 9.0 2024-02-26 12:19:55 +00:00
jan.nijtmans 1973817a3c Rebase to latest core-8-6-branch 2024-02-26 10:56:25 +00:00
apnadkarni 40c3973401 Fix [bda99f2393]. Windows non-blocking gets stdin truncation. See ticket for resolution. 2024-02-26 05:43:45 +00:00
jan.nijtmans 25232b6f62 The [https://en.wikipedia.org/wiki/KOI8-U|wiki] clearly states that the mapping for 0xB4 was a type, so +1 for fixing [f23022e07a] 2024-02-25 15:35:43 +00:00
bch 595c3da75e speeling 2024-02-23 16:24:01 +00:00
jan.nijtmans ff85c5650b Remove some dead code 2024-02-21 23:14:16 +00:00
oehhar 8aac121b06 Merge-mark 2024-02-21 17:05:40 +00:00
oehhar 60a814c1cb Backport missing .fi from main branch in file doc/ObjectType.3 2024-02-21 17:04:22 +00:00
dgp 16b5e6486a A few more changes. 2024-02-21 15:49:48 +00:00
dgp fc1c8a8c75 merge 8.6 2024-02-20 17:53:31 +00:00
oehhar ee703cb91f Merge 8.7 2024-02-20 16:52:58 +00:00
oehhar d450b8db6c Ticket [2f4b495427]: document TIP 445 API functions. 2024-02-20 16:47:28 +00:00
apnadkarni c9e280eb4c Merge main. Enable [bda99f2393] tests. 2024-02-20 05:56:43 +00:00
apnadkarni bd822cee64 Bump blocking read buffer size to 8192 irrespective of Tcl channel buffer size 2024-02-20 05:49:14 +00:00
apnadkarni f4aad3d78b Fix EOF test for TIP 646. Add tests for Bug [bda99f2393]. Remove Scriptics copyright (none of their code remains). 2024-02-20 05:47:19 +00:00
apnadkarni 3b5d778d4d Starton [bda99f2393]. 2024-02-19 16:58:48 +00:00
jan.nijtmans 46378a22e4 Merge-mark 2024-02-19 16:29:27 +00:00
jan.nijtmans c1fc3414ab TCL_INTEGER_SPACE + 4 could be too small for a channelName on win32. Backported from 9.0: Derpfix... 2024-02-19 16:27:45 +00:00
jan.nijtmans a59d8bc0d3 Merge-mark 2024-02-16 17:00:22 +00:00
jan.nijtmans 6229546f2d (Cherry-pick): Derpfix... 2024-02-16 16:59:53 +00:00
dkf 97a62e80f7 Derpfix... 2024-02-16 16:23:28 +00:00
jan.nijtmans 7940db9a41 Merge 8.7 2024-02-16 14:55:01 +00:00
jan.nijtmans fdd6e10be7 Merge 8.6 2024-02-16 14:48:23 +00:00
jan.nijtmans 4ecd9f7eaa (cherry-pick) Reduce the number of warnings on Windows: channel names generated in one place 2024-02-16 14:43:11 +00:00
dkf 348a15e956 Reduce the number of warnings on Windows: channel names generated in one place 2024-02-16 14:17:09 +00:00
jan.nijtmans fe87d877dd Fix [e646d28f1a]: 8.6 Documentation/comment typo fixes 2024-02-16 12:41:37 +00:00
jan.nijtmans 1059f36a98 Merge-mark 2024-02-16 12:30:31 +00:00
jan.nijtmans 19943631d4 Fix [aa6624c629]: tclExecute.c: Avoid false-positive warning 2024-02-16 12:23:22 +00:00
jan.nijtmans 4c72523145 Merge 8.7 2024-02-16 12:16:20 +00:00
jan.nijtmans 7dba68fe76 Merge 8.6. http -> 2.10b2 2024-02-16 12:05:09 +00:00
jan.nijtmans 7f4cefb36e Merge 8.7 2024-02-15 20:43:12 +00:00
jan.nijtmans 4a3fdabdb8 Fix [578b7e273c03]: Round computed end value to match precision of given arguments 2024-02-15 20:33:17 +00:00
griffin 6285eef0fb Fix bug 578b7e273c03. -- Round computed end value to match precision of given arguments. 2024-02-15 01:50:53 +00:00
dgp 4fd3283768 changes file refinements 2024-02-14 19:17:19 +00:00
dgp 4967cadcfd merge 8.6 2024-02-14 19:11:18 +00:00
dgp 425661ed95 There are changes to package tcltest since release of Tcl 9.0b1.
Bump to tcltest 2.5.7
2024-02-14 19:10:42 +00:00
dgp e3af76a7e7 merge 8.6 2024-02-14 18:55:29 +00:00
dgp 6e1b2262d9 There have been changes to the package opt. Bump to opt 0.4.9 2024-02-14 18:54:29 +00:00
jan.nijtmans e8ff8d4a2d Merge-mark 2024-02-14 16:07:53 +00:00
jan.nijtmans 79dae448fe Merge-mark 2024-02-14 16:06:57 +00:00
jan.nijtmans 4797a61bf1 offsetof -> TclOffset 2024-02-14 16:05:41 +00:00
jan.nijtmans 7726d36086 Merge 8.7 2024-02-12 22:27:02 +00:00
jan.nijtmans 46a142a14a More code cleanup 2024-02-12 21:55:57 +00:00
jan.nijtmans ee1404b900 Merge 9.0 2024-02-12 15:29:53 +00:00
jan.nijtmans f8649a3af5 Merge 8.7 2024-02-12 15:28:41 +00:00
jan.nijtmans fd57069fd8 Code cleanup (also backported from 9.0) 2024-02-12 15:26:23 +00:00
jan.nijtmans b4e68ccbf2 Merge 8.7 2024-02-12 15:06:19 +00:00
jan.nijtmans 95f6d90cc6 Fix last "knownBug" in UTF-16 encoder (backported from 9.0) 2024-02-12 14:43:01 +00:00
jan.nijtmans dded0b6fee Merge 9.0 2024-02-12 12:45:28 +00:00
jan.nijtmans 62524aac16 Merge 8.7 2024-02-11 22:10:29 +00:00
jan.nijtmans 60879f5417 TIP #652 2024-02-11 22:05:56 +00:00
dgp 9ba9faaf07 merge 8.6 2024-02-09 14:20:21 +00:00
jan.nijtmans 181274a8a0 This should be removed too 2024-02-09 14:17:42 +00:00
jan.nijtmans df72205c20 Merge 8.7 2024-02-08 16:36:49 +00:00
jan.nijtmans 9a7f5e9ddd Merge 8.6. Some int -> Tcl_Size 2024-02-08 16:25:56 +00:00
jan.nijtmans fb08c25060 Fix gcc 13.2.1 (Fedora 39.1) warning: Writing of 1 byte into a region of size 0 [-Wstringop-overflow=] 2024-02-08 16:11:09 +00:00
jan.nijtmans 77a80e19e5 Merge 8.7 2024-02-08 13:27:45 +00:00
jan.nijtmans c908e7d46d Merge 8.6 2024-02-08 13:26:46 +00:00
jan.nijtmans 848a8a83b8 Fix all 'ascii' testcases in encodingVectors.tcl, another try. See [1355b9a874]. 2024-02-08 13:21:02 +00:00
Torsten d19f6af5e2 re-introduced an already fixed formatting error - now correct again 2024-02-08 09:57:42 +00:00
Torsten 0e110b3a0e ups, accidentally re-introduced an already fixed formatting error - corrected again now 2024-02-08 08:45:34 +00:00
Torsten c1504ae00c (cherry-pick) Fixed wrongly placed punctuation in .QW macro of clock.n manual page 2024-02-08 08:34:16 +00:00
Torsten 633de596cd Fixed wrongly placed punctuation in .QW macro of clock.n manual page 2024-02-08 08:09:00 +00:00
jan.nijtmans 9c98dd1bc4 Merge 8.7 2024-02-07 20:53:36 +00:00
jan.nijtmans 90de673f32 Backout [c63ef66f0d], back to the drawing table. 2024-02-07 20:52:03 +00:00
oehhar 9d5dec3863 Merge mark 2024-02-07 18:00:03 +00:00
oehhar d065b460d4 8.6 changes file finished from my side 2024-02-07 17:57:38 +00:00
dgp f6dc0d9609 merge 8.6 2024-02-07 17:51:02 +00:00
dgp 53c8d55150 merge 8.7 2024-02-07 17:07:07 +00:00
dgp 8898237b3b merge 8.6 2024-02-07 16:59:30 +00:00
dgp a57f0adecb Update tests to accept new [history] implementation. 2024-02-07 16:51:48 +00:00
jan.nijtmans 134d7c7295 Those testcases are not a bug, but actually correct. See TIP #619: Starting with Tcl 9.0, surrogates are no longer combined automatically.
This has no relation with -profile, which only specifies whether to throw an exception or use a replacement character.
2024-02-07 16:19:19 +00:00
pooryorick f531ea653b Implementation of TIP 652. 2024-02-07 14:47:07 +00:00
jan.nijtmans 0251bc0e9e Merge 8.7 2024-02-07 13:12:27 +00:00
jan.nijtmans ed24342925 Merge 8.6 2024-02-07 13:11:23 +00:00
jan.nijtmans c56e4b58dd Fix [8e666d7c95]: Redefining proc ::history locks the interpreter into a tight loop 2024-02-07 13:03:29 +00:00
jan.nijtmans 07a872a6d1 Merge 8.7 2024-02-07 10:49:12 +00:00
jan.nijtmans b87793dcfa Fix all 'ascii' testcases in encodingVectors.tcl 2024-02-07 10:00:13 +00:00
jan.nijtmans 38d5331327 Remove some {knownBug} indicators: those are already fixed. 2024-02-07 09:07:42 +00:00
jan.nijtmans d8dcec96ac (cherry-pick): Add test cases for [80d4c1c7e5] 2024-02-07 08:50:01 +00:00
oehhar 27435d486f Merge mark 2024-02-07 07:08:19 +00:00
oehhar 8002bc99dc Continue with changes file 2024-02-07 07:06:00 +00:00
apnadkarni ed502a9c1f Add test cases for [80d4c1c7e5] 2024-02-07 03:06:05 +00:00
oehhar 6cf3d72211 Merge mark 2024-02-06 16:43:30 +00:00
oehhar 24f2363842 Changes file by Brian, slightly edited. 2024-02-06 16:39:40 +00:00
jan.nijtmans 715ad9e596 Merge 8.7 2024-02-06 15:02:40 +00:00
jan.nijtmans e91a377c60 Merge 8.6 2024-02-06 15:01:20 +00:00
jan.nijtmans 9da8f0ddaa Fix [86b3c15f0c]: ::unknown has infinite recursion in a corner case 2024-02-06 14:58:55 +00:00
jan.nijtmans fc6dd58f98 \032 -> \x1A, since hex reads better than octal 2024-02-06 14:57:27 +00:00
jan.nijtmans 718545fc59 \032 -> \x1A, since hex reads better than octal 2024-02-06 14:49:29 +00:00
jan.nijtmans e3585eb1e7 Slightly simpler 2024-02-06 14:42:59 +00:00
jan.nijtmans d34da70956 Proposed fix for [86b3c15f0c]: ::unknown has infinite recursion in a corner case 2024-02-06 14:16:57 +00:00
jan.nijtmans b857025dfe Proposed fix for [8e666d7c95]: Redefining proc ::history locks the interpreter into a tight loop 2024-02-06 13:32:03 +00:00
jan.nijtmans dc893abb8b Fix [80d4c1c7e5]: Isolated surrogates are not replaced when encoding to / from utf-8 2024-02-06 13:22:59 +00:00
jan.nijtmans bbcdfd9e87 Proposed fix for [80d4c1c7e5]: Isolated surrogates are not replaced when encoding to / from utf-8 2024-02-06 13:01:11 +00:00
jan.nijtmans bafec0207a Merge 8.7 2024-02-06 12:45:48 +00:00
jan.nijtmans d44a4ad52d Minor code simplification 2024-02-06 12:33:35 +00:00
jan.nijtmans f1ec130960 Merge 8.7 2024-02-06 09:55:48 +00:00
jan.nijtmans ff46d92cd5 Fix util-18.13/util-18.14 constraint, which masked the wrong result on 64-bit windows. Fixed that as well. 2024-02-06 09:41:13 +00:00
jan.nijtmans 707674c438 Merge 8.7 2024-02-05 21:12:04 +00:00
jan.nijtmans 1268688a09 Merge 8.6 2024-02-05 21:02:06 +00:00
jan.nijtmans 1d283a9126 Fix indenting 2024-02-05 18:02:52 +00:00
jan.nijtmans bedc3d4cec Fix [2089279]: StringObj.3 Tcl_ObjPrintf inaccuracies.
Not only the documentation, also the behavior in the "unsigned long" case was wrong. Testcases added.
2024-02-05 15:26:42 +00:00
jan.nijtmans 95c2c99013 Merge 8.7 2024-02-04 10:54:51 +00:00
jan.nijtmans bd984ebe67 Merge 8.6 2024-02-04 01:49:25 +00:00
jan.nijtmans 49be256ae5 Update to tzdata 2024a 2024-02-04 01:42:15 +00:00
jan.nijtmans d71b04e853 Merge 9.0 2024-02-02 17:44:47 +00:00
jan.nijtmans fa420ae558 Merge 8.7 2024-02-01 21:47:01 +00:00
jan.nijtmans 4680a286e7 Fix [0d78177f20]: unsigned use of Tcl_ObjPrintf() doesn't work as expected. With testcases. 2024-02-01 21:44:49 +00:00
jan.nijtmans a674e49222 Merge 8.7 2024-02-01 09:43:27 +00:00
jan.nijtmans 28ad5a88c9 Forgot that long doubles are supported in Tcl_ObjPrintf() 2024-02-01 09:42:36 +00:00
jan.nijtmans 89c1b5ea09 Merge 8.7 2024-02-01 09:23:16 +00:00
jan.nijtmans 19d9008e31 Merge 8.7, but update for TIP #476 2024-02-01 09:21:42 +00:00
jan.nijtmans 4d8f46acdb Update Tcl_ObjPrintf() documentation. Make it more clear that C11 format specifiers are not supported. 2024-02-01 09:08:36 +00:00
jan.nijtmans f011b526ba Merge 8.7 2024-01-31 21:18:32 +00:00
jan.nijtmans 14ce0e744b More TCL_SIZE_MODIFIER usage 2024-01-31 21:08:38 +00:00
jan.nijtmans 65ab3a7a43 Merge 9.0 2024-01-31 14:09:57 +00:00
jan.nijtmans 511711d286 Merge 8.7 2024-01-31 14:09:07 +00:00
jan.nijtmans 7003c9447d Eliminate (now unnecessary) type-casts 2024-01-31 13:57:37 +00:00
jan.nijtmans 1143cd0520 Remove private characters from regexp control table, but add them back in [:cntrl:] class (so no change in regexp handling). Eliminated (size_t) type-casts.
This makes implementing more character-classes easier.
2024-01-31 12:42:32 +00:00
jan.nijtmans 4e2c8b8502 Merge 9.0 2024-01-31 10:19:15 +00:00
jan.nijtmans 8d5210dae3 Merge 8.7 2024-01-29 21:12:29 +00:00
jan.nijtmans 68bdb52eeb re-build win64/zlib1.dll for UCRT 2024-01-29 21:04:23 +00:00
dkf 318bf8e4a8 Add doc comments 2024-01-29 20:48:15 +00:00
sebres 9964e62553 merge 8.7 2024-01-29 15:42:30 +00:00
sebres ac1dcfbb6c small amend (type change) 2024-01-29 15:39:29 +00:00
sebres ff9b361ee1 merge 8.6 2024-01-29 15:26:48 +00:00
sebres b0b5075280 closes [db4f2843cd]: fixes segfault by BO in ReadChars (and Tcl_ReadChars with append) 2024-01-29 14:10:54 +00:00
sebres e854c0b7ad closes [db4f2843cd]: fixes SF by BO in ReadChars (and Tcl_ReadChars with append) caused by wrong buffer enlarge if objPtr shimmering to unicode for whatever reason, since Tcl_AppendToObj prefers unicode to bytes, whereas TclAppendUtfToUtf always extend bytes (that handled by ReadChars) 2024-01-29 13:55:50 +00:00
sebres cd529a89c5 don't flush to use full buffer (otherwise the chunks were 4K anyway) 2024-01-29 11:06:36 +00:00
jan.nijtmans 0fda769b3a Merge 8.7 (update to zlib 1.3.1) 2024-01-29 09:23:36 +00:00
jan.nijtmans 17b066864d Merge 8.6 2024-01-29 09:20:12 +00:00
jan.nijtmans 5da9a1bb8e Update to zlib-1.3.1 2024-01-29 09:17:29 +00:00
jan.nijtmans be71899018 Re-generate win32/64 zlib1.dll (version 1.3.1) 2024-01-29 09:11:02 +00:00
jan.nijtmans c9df213417 Re-generate win64-arm/zlib1.dll 2024-01-28 22:59:46 +00:00
jan.nijtmans 55398dda05 zlib-1.3.1 2024-01-28 22:25:28 +00:00
dkf 4c5e0a69a9 Plug implementation in... and fix the silly bugs 2024-01-28 21:56:08 +00:00
jan.nijtmans ebd6869a88 Merge 8.7 2024-01-28 21:21:19 +00:00
jan.nijtmans eab7250ee4 Missing "const" 2024-01-28 21:12:57 +00:00
jan.nijtmans e2fb9a2c2d Merge 9.0 2024-01-28 20:50:52 +00:00
jan.nijtmans 6c9c93ea48 Fix .CE -> .CS 2024-01-28 20:47:13 +00:00
jan.nijtmans fcf30b56f7 Backport regsub.n from 9.0 2024-01-28 20:42:38 +00:00
dkf cb5a0a9107 Property implementation 'definitions', not yet plumbed into documented API 2024-01-28 19:15:28 +00:00
dkf d3740313f4 Property implementations: not plugged into Tcl level yet 2024-01-28 15:40:29 +00:00
dkf 0122c974de win/Makefile/in tinkering 2024-01-27 23:16:53 +00:00
jan.nijtmans 7165b4ee62 Merge 9.0 2024-01-27 23:12:52 +00:00
dkf 67bcf9f386 Change back memory management to how I wanted it to be 2024-01-27 22:09:37 +00:00
dkf bdc4a8603d Now passing tests 2024-01-27 22:05:59 +00:00
dkf e2c34f6707 Work in progress: Implementing properties with more C for greater speed 2024-01-27 12:24:42 +00:00
jan.nijtmans d0c6ad4ae1 Merge 8.7 2024-01-27 12:15:54 +00:00
jan.nijtmans bcea43b2a2 More testcases 2024-01-27 12:09:52 +00:00
jan.nijtmans 4c4354baf8 Merge 8.6 2024-01-27 11:59:26 +00:00
jan.nijtmans 854b784323 Fix [16e25e1402]: tcl_startOfPreviousWord cannot handle "end-1" 2024-01-27 11:51:45 +00:00
sebres b7a1eb041b added channel regression tests (for read command) to illustrate bugs [db4f2843cd], [da16d15574] 2024-01-26 22:18:14 +00:00
jan.nijtmans fe3b888025 Merge 8.7 2024-01-26 13:46:43 +00:00
jan.nijtmans b098e6a218 Merge 8.6 2024-01-26 13:45:31 +00:00
jan.nijtmans 4700e9e59f Fix [16e25e1402]: tcl_startOfPreviousWord cannot handle "end-1" 2024-01-26 13:40:47 +00:00
jan.nijtmans f50f3eca34 Add testcases for library/word.tcl 2024-01-26 13:37:13 +00:00
jan.nijtmans 5a3974be4e Improve tcl_startOfPreviousWord, so it can handle indices like "" (from Tk) and "end-1" 2024-01-26 12:51:15 +00:00
dkf f8d6a0caa7 Tidy up a bit by adding some comments to findDocWords 2024-01-25 20:26:52 +00:00
dkf d78ebb8e01 Another round of small fixes, especially spelling errors... 2024-01-25 17:45:17 +00:00
dkf 104d50836d Add script I've used to find spelling errors in docs 2024-01-25 17:42:32 +00:00
jan.nijtmans 7533d9c78e fix missing .CE 2024-01-24 20:48:57 +00:00
jan.nijtmans 0521de9b57 Backport doc/eval.n from 9.0, and fix missing .CE 2024-01-24 20:46:04 +00:00
dgp 6f6407cd77 merge 8.6 2024-01-24 19:40:33 +00:00
oehhar 9d35723607 Merge 8.7 2024-01-23 08:38:17 +00:00
oehhar 698ba502d6 Merge 8.6 2024-01-23 08:36:57 +00:00
oehhar e11d1c4593 Doc of Tcl_AppendToObj: Remove documentation of NULL data argument as this is an internal feature 2024-01-23 08:35:57 +00:00
jan.nijtmans e3e97685c5 Merge 8.7 2024-01-22 15:43:22 +00:00
oehhar 954d7b3313 Merge TCL8.6 2024-01-22 15:08:23 +00:00
oehhar 1248873790 [db4f2843cd],[da16d15574]: revert Tcl_ReadChars fix, due to performance impact. 2024-01-22 15:07:33 +00:00
oehhar b98f4c049b Merge TCL8.6 2024-01-22 14:28:07 +00:00
oehhar a7841c171a Doc of Tcl_AppendToObj: Document NULL data argument behaviour and buffer growth optimization. 2024-01-22 14:26:21 +00:00
dkf 9fc36886d6 More small bits of doc polishing 2024-01-21 23:03:52 +00:00
dkf c0820abc21 Clean up of docs 2024-01-21 17:48:32 +00:00
jan.nijtmans 0a1b304cf5 Merge 8.6 2024-01-21 16:31:24 +00:00
jan.nijtmans f6c924bc73 Optimize Tcl_UniCharIsControl(). Don't worry about range >= U+F0000, that's for TCL_UTF_MAX>3, which is unsupported for 8.6. 2024-01-21 16:26:40 +00:00
jan.nijtmans a4d5f5c006 Fix failing zipfs testcases 2024-01-20 11:23:54 +00:00
jan.nijtmans d8760322be Merge 8.7 2024-01-19 15:18:40 +00:00
jan.nijtmans 87c013bbb8 Fix compiler warning 2024-01-19 14:59:53 +00:00
jan.nijtmans 968daa687d (cherry-pick): Bug [e5ca49bcfa] - zipfs glob 2024-01-19 14:34:33 +00:00
apnadkarni b8ae8ea2c5 Bug [e5ca49bcfa] - zipfs glob 2024-01-19 11:27:25 +00:00
jan.nijtmans 5e082aa976 TCL_RELEASE_SERIAL (in tcl.h) and unix/tcl.spec should be updated too 2024-01-17 16:31:23 +00:00
griffin 45b2d0d715 Bump to 8.6.14 for release 2024-01-16 01:05:52 +00:00
jan.nijtmans eb181f258d Merge 8.7 2024-01-15 19:40:11 +00:00
jan.nijtmans 7efbfd6da6 Merge 8.6 2024-01-15 19:32:09 +00:00
jan.nijtmans de64389a11 Fix non-existing function names in test titles 2024-01-15 19:22:02 +00:00
jan.nijtmans 6d2648a955 Bug [d63061a1ac]: "PRIVATE != CONTROL in Unicode". Leave out "Co" (private-use characters) from "string is control". 2024-01-15 10:46:33 +00:00
jan.nijtmans dbcaa24673 Merge 8.7 2024-01-14 00:35:46 +00:00
jan.nijtmans 5274e3e206 Merge 8.6 2024-01-14 00:29:31 +00:00
jan.nijtmans 709482b58c Fix wrongly-placed braces (noted by AKU, thanks!). Also '==' -> 'eq' in expression. 2024-01-13 22:24:05 +00:00
jan.nijtmans 356e08632c Merge 8.7 2024-01-12 13:12:41 +00:00
jan.nijtmans b677876dcb Leave out Tcl_UtfNcmp/Tcl_UtfNcasecmp from -DTCL_NO_DEPRECATED builds, because it's part of the UTF16 compatibility layer 2024-01-12 11:53:42 +00:00
jan.nijtmans 3a0bb42e5b Update the pkga.c/pkgua.c examples, making sure there's no misunderstanding that Tcl_UtfNcmp() expects Tcl_UniChar lengths, not byte lengths 2024-01-12 11:31:15 +00:00
oehhar d6848c8f36 Merge 8.x 2024-01-11 09:37:38 +00:00
oehhar 3e483fb2cd Merge 8.6 2024-01-11 09:36:33 +00:00
oehhar 340d762f18 Ticket [fd27add6]: doc change of Tcl_PkgRequire & friends: version string specification refers to "package require". 2024-01-11 09:33:35 +00:00
jan.nijtmans 69f20ad669 Merge-mark 2024-01-10 21:21:17 +00:00
jan.nijtmans b06b03b94b Fix [4e38c347a4] Changed contract for Tcl_UtfN(case)cmp in Tcl 8.7 2024-01-10 21:01:29 +00:00
jan.nijtmans 54ec427c3f Fix [4e38c347a4]: Changed contract for Tcl_UtfN(case)cmp in Tcl 8.7 2024-01-10 15:12:39 +00:00
jan.nijtmans d9a990e190 Merge 8.7 2024-01-09 22:29:52 +00:00
jan.nijtmans f4c6d53693 Merge 8.6 2024-01-09 12:15:53 +00:00
jan.nijtmans e39f6c7506 Optimize use of $fullutf variable 2024-01-09 12:02:51 +00:00
jan.nijtmans f99c2266c1 Backport tcltest 2.5.6 from Tcl9.0b1 2024-01-09 10:32:52 +00:00
jan.nijtmans 90ec870a4f Use "info exists" to test for Tk presence 2024-01-09 09:11:34 +00:00
oehhar 4e6d4afb1a Documentation of "string is unicode": add warning "this option is under discussion and may be renamed or replaced by another solution withhin the TCL 9.0 series" 2024-01-08 15:31:47 +00:00
jan.nijtmans 2646ac67ca Merge 9.0 2024-01-08 14:39:29 +00:00
jan.nijtmans 7c3d8f375c Merge 8.7 2024-01-08 13:45:52 +00:00
jan.nijtmans 39f9ba5a92 Merge 8.6. Add (back) special Tcl_GetLongFromObj handling for Cygwin64 stub-table 2024-01-08 13:23:33 +00:00
jan.nijtmans 43cd9be665 (cygwin-only): Add (void *) typecast, preventing coompiler warnings in some situations 2024-01-08 13:16:29 +00:00
jan.nijtmans c1b3555a9c Remove Cygwin trick, which makes no sense any more 2024-01-07 22:50:01 +00:00
jan.nijtmans f4f9649fe8 Merge 8.7 2024-01-07 01:00:32 +00:00
jan.nijtmans d427267893 re-generate tclConfig.h.in as well 2024-01-07 00:56:33 +00:00
jan.nijtmans e42bda00fd Merge 8.7 2024-01-07 00:48:31 +00:00
jan.nijtmans fd84537f77 Upgrade to autoconf-2.72 2024-01-07 00:06:32 +00:00
jan.nijtmans e54fc49313 Merge 8.7 2024-01-06 18:48:35 +00:00
jan.nijtmans a088a88bb2 Merge 8.6. Some int -> Tcl_Size 2024-01-06 18:08:54 +00:00
jan.nijtmans ddd197206f Correction in documentation embedded in rules.vc 2024-01-06 17:09:22 +00:00
jan.nijtmans 1ed52ca385 Build packages for both Tcl8 and Tcl9 2024-01-05 23:17:57 +00:00
jan.nijtmans d3d7043783 Handle README -> README.md change in tcltk-man2html.tcl 2024-01-05 23:02:57 +00:00
jan.nijtmans 041ff066d3 Merge 8.6 2024-01-05 22:56:39 +00:00
jan.nijtmans f6b6341a32 Handle README -> README.md change in tcltk-man2html.tcl 2024-01-05 22:50:14 +00:00
dgp a48a1ef9e1 silence compiler warning 2024-01-05 18:49:26 +00:00
dgp 73aa8b666f merge release 2024-01-05 18:38:45 +00:00
jan.nijtmans 7cdf73f1ae Resolve the INT_MAX limination in GetIndexFromObjList() 2024-01-05 17:22:35 +00:00
jan.nijtmans 824e9f73e6 Make the SUFX for nmake-builds the same as for Makefile builds, if TCL_VERSION > 86 2024-01-05 14:22:54 +00:00
jan.nijtmans f2e75be869 Make the SUFX for nmake-builds the same as for Makefile builds, if TCL_VERSION > 86 2024-01-05 14:20:42 +00:00
jan.nijtmans db7f86f6ae Merge 8.6 2024-01-05 13:52:49 +00:00
jan.nijtmans 81524a5b82 Only run "loaddll" testcases in non-static builds 2024-01-05 13:49:07 +00:00
jan.nijtmans e947438646 Tcl_UtfNCmp -> Tcl_UtfNcmp 2024-01-05 09:46:36 +00:00
jan.nijtmans 34016856e9 Merge 9.0 2024-01-04 20:59:41 +00:00
jan.nijtmans f863023b58 Merge-mark 2024-01-04 20:52:43 +00:00
jan.nijtmans 3cb3db4031 Merge-mark 2024-01-04 20:33:02 +00:00
jan.nijtmans e566659857 Add a lot of timeouts to GITHUB builds. Backported from 8.7 2024-01-04 17:35:51 +00:00
jan.nijtmans 8bdaa954b4 Add many timeouts, add --disable-zipfs build (backported from 9.0) 2024-01-04 17:28:29 +00:00
jan.nijtmans 6b899da180 Fix [https://core.tcl-lang.org/tk/info/1ca3c8d9da|1ca3c8d9da]: nmake build with OPTS=static 2024-01-04 16:29:09 +00:00
jan.nijtmans a1db76f076 Fix [https://core.tcl-lang.org/tk/info/1ca3c8d9da|1ca3c8d9da]: nmake build with OPTS=static 2024-01-04 16:22:42 +00:00
jan.nijtmans f6c05909e3 Fix [https://core.tcl-lang.org/tk/info/1ca3c8d9da|1ca3c8d9da]: nmake build with OPTS=static 2024-01-04 16:06:06 +00:00
jan.nijtmans 7d0431e579 There's no need to give tcltest.exe it's own maniifest. Give tcltest.exe a version-number (as tclsh) 2024-01-04 15:38:11 +00:00
jan.nijtmans 1a032a0dea Make _VC_MANIFEST_EMBED_EXE function work for tclsh.exe/tcltest.exe 2024-01-04 12:42:36 +00:00
jan.nijtmans 56f9606593 Add generation of tcltest.res for tcltest.exe, which should function the same as tclsh.exe 2024-01-04 12:22:57 +00:00
jan.nijtmans 6d0b4fcfad Sync *.yml changes with Tk. Add OPTS=static,staticpkg Windows build 2024-01-04 11:47:58 +00:00
jan.nijtmans 5e0992037e Merge 8.7 ("struct stat" -> Tcl_StatBuf change only) 2023-12-31 13:34:16 +00:00
jan.nijtmans 4bf05437d0 Merge-mark 2023-12-31 00:06:53 +00:00
jan.nijtmans 2c2578a060 (cherry-pick) 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. Minor rewrite 2023-12-30 23:59:43 +00:00
jan.nijtmans d46e58aa37 missing goto 2023-12-30 21:47:24 +00:00
jan.nijtmans dc8b54aa4a (cherry-pick) 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. Minor rewrite 2023-12-30 21:32:22 +00:00
jan.nijtmans d840e812e9 Fix incorrect Tcl_UtfNcasecmp() usage (since len is in bytes, not characters here) 2023-12-30 00:08:11 +00:00
jan.nijtmans b2fd0031c6 Fix [abd489a1c]: TclStringCmp() calls functions through pointer to incorrect type 2023-12-29 23:54:52 +00:00
jan.nijtmans b5f266cc6f Merge 8.6 2023-12-29 22:32:36 +00:00
jan.nijtmans 74f2d36b98 Fix incorrect TclUtfNcasecmp() usage (since len is in bytes, not characters here) 2023-12-29 16:26:46 +00:00
jan.nijtmans d863fb1f1a Unneeded #undef's. Testcase/comment cleanup 2023-12-29 14:57:01 +00:00
jan.nijtmans 2ce499361e Merge 8.6 2023-12-29 12:39:34 +00:00
dgp e4e64635d5 update to TZDATA 2023d 2023-12-28 17:08:33 +00:00
jan.nijtmans b2d7ce5570 Fix [abd489a1c]: TclStringCmp() calls functions through pointer to incorrect type 2023-12-27 23:10:13 +00:00
jan.nijtmans 32c818b4e0 Merge 8.7 2023-12-27 22:39:00 +00:00
jan.nijtmans 2e662a41f8 Don't use TCL_SIZE_MODIFIER "u", since Tcl_Size can be negative 2023-12-26 16:31:27 +00:00
jan.nijtmans 6d62fa4e3c update to TZDATA 2023d 2023-12-24 12:49:14 +00:00
jan.nijtmans 62ffe13d71 update to TZDATA 2023d 2023-12-24 12:46:21 +00:00
jan.nijtmans a60836ba34 update to TZDATA 2023d 2023-12-24 12:41:28 +00:00
jan.nijtmans eb72dd9f57 Document "string is unicode". More documentation fixes. 2023-12-22 08:14:57 +00:00
jan.nijtmans a8353cf92e Document "string is unicode" 2023-12-22 08:06:36 +00:00
jan.nijtmans e413cb3206 off-by-one doc error 2023-12-21 14:39:08 +00:00
jan.nijtmans 1cc54f6722 Merge-mark 2023-12-21 13:38:50 +00:00
jan.nijtmans 2d164515fb Merge 9.0 2023-12-21 13:37:45 +00:00
jan.nijtmans 5a3087832f Merge 9.0 2023-12-21 13:29:40 +00:00
jan.nijtmans 2d6026426b Remove many (8.6-compatibility)-stub entries which are not in use any more. 2023-12-21 13:28:07 +00:00
jan.nijtmans f6b9008b9b Merge 9.0 2023-12-21 10:39:51 +00:00
jan.nijtmans 1577c501ba Fix superfluous ';' 2023-12-21 10:37:52 +00:00
jan.nijtmans cc9547e5ac Teach tcl+pkgs harness how to build/install packages for both Tcl 8 and Tcl 9 2023-12-20 22:27:58 +00:00
jan.nijtmans ff768f4501 spacing 2023-12-20 19:51:49 +00:00
jan.nijtmans 0e30b6eaee Convert tests/twapiTlsPlus.tcl from CRLF -> LF 2023-12-20 19:50:44 +00:00
jan.nijtmans 1057bbb445 Merge 8.7 2023-12-20 19:40:51 +00:00
jan.nijtmans b8dbe57714 Spacing 2023-12-20 19:31:13 +00:00
kjnash e8a83669ab Merge bugs-http-8c3de50-bbaf69c 2023-12-20 10:11:10 +00:00
kjnash 1a5d51ef91 Merge 8.7 2023-12-20 10:08:19 +00:00
kjnash 5e4e23217a Improve tests/http.test, tests/http11.test, tests/httpPipeline.test. Catch unimportant cleanup errors. Print full-file summary by default (not per-ThreadLevel). 2023-12-19 17:26:09 +00:00
jan.nijtmans 436c0de967 Merge 8.7 2023-12-19 10:00:28 +00:00
jan.nijtmans 05595f241e GITHUB upload-artifact @3 -> @4 2023-12-19 08:33:25 +00:00
kjnash e7bda898c7 Improve tests/httpProxy.test. Use constraints and print a message on their usage. Catch unimportant cleanup errors. Use knownBug to control test failures. Print full-file summary by default (not per-ThreadLevel). Pause between tests to avoid flooding the server. Add module twapiTlsPlus and load it when needed. Add example configuration files for Diladele Squid on Windows. 2023-12-18 17:30:26 +00:00
kjnash ac5b6950a8 Reverse the 2.8.9- fix for an apparent bug in Thread on Windows - the "bug" vanished after a Windows reboot. 2023-12-18 17:08:41 +00:00
dgp 4031a1d204 merge-mark 2023-12-18 14:59:32 +00:00
dgp 7747dc827d merge 8.6 2023-12-18 14:48:46 +00:00
dgp 282b5b8829 Restore [removeFile script]. It is needed in this branch. 2023-12-18 14:34:37 +00:00
jan.nijtmans cdfd23f983 Merge-mark 2023-12-16 00:26:38 +00:00
jan.nijtmans 06cc59071d Merge 8.6 2023-12-16 00:20:28 +00:00
jan.nijtmans ac73daa118 Merge 8.6 2023-12-15 22:16:21 +00:00
jan.nijtmans 319ab9635e (cherry-pick) test suite debugging 2023-12-15 22:05:09 +00:00
dgp 08d6d1d953 merge trunk 2023-12-15 17:56:20 +00:00
dgp cef4e08006 test suite debugging 2023-12-15 17:55:50 +00:00
dgp cf1d265d6b merge trunk 2023-12-13 17:41:04 +00:00
dgp 65831a08ad merge 8.7 2023-12-13 16:55:10 +00:00
dgp de8f222a10 [f6f93c3b39] Missing refcount decrement to cleanup read space on io error. 2023-12-13 16:29:49 +00:00
jan.nijtmans 64743ec374 Merge 9.0 2023-12-13 14:24:07 +00:00
jan.nijtmans ce8f8e13d6 twice ClientData -> void * (for consistancy) 2023-12-13 12:19:01 +00:00
jan.nijtmans 292f0ce22a Merge 8.7 2023-12-12 22:42:02 +00:00
kjnash d496052a34 Merge bugs-http-8c3de50-bbaf69c 2023-12-12 16:00:53 +00:00
kjnash 33e68c3150 Merge 8.7 core-8-branch 2023-12-12 15:56:18 +00:00
kjnash 292e8668fb When http.tcl uses Thread, require Thread 2.8.9- to avoid failure of r/w operations on 2.8.8 thread::transfer socket on Windows. 2023-12-12 15:52:00 +00:00
dgp a5e08b60cf merge trunk 2023-12-12 14:43:16 +00:00
jan.nijtmans e1e58b60b9 Shuffle typedef's/#defined around 2023-12-12 13:49:48 +00:00
dgp 6c60aceee8 merge trunk 2023-12-12 13:42:47 +00:00
jan.nijtmans 9d1ad6fc70 Fix compiler error in TIP #677 implementation 2023-12-12 13:21:28 +00:00
dgp ac22265a6e merge trunk 2023-12-11 19:36:45 +00:00
dkf e4b722ed38 TIP 677: Constant Variables 2023-12-11 14:35:05 +00:00
jan.nijtmans 373ae89a0e Merge 8.7 2023-12-10 11:47:00 +00:00
jan.nijtmans 748b5e134b Merge 8.6 2023-12-10 11:22:07 +00:00
jan.nijtmans fb9a422a51 Try "sudo apt-get update" first 2023-12-09 17:53:17 +00:00
jan.nijtmans e6e8236a18 Merge 9.0 2023-12-08 15:23:04 +00:00
jan.nijtmans ea7f76646a Merge 8.7 2023-12-08 15:22:05 +00:00
jan.nijtmans fdbc6e1e90 Merge 8.6 2023-12-08 15:21:19 +00:00
jan.nijtmans 0077a18280 Use "(char *)NULL" as sentinel in documentation. See: [26870862f0] 2023-12-08 15:20:09 +00:00
jan.nijtmans 0a5f5089fb Add (back) DL_LIBS, matching the UNIX version of tcl.m4 2023-12-08 12:00:06 +00:00
jan.nijtmans e8b013483f Merge 8.7 2023-12-08 11:11:37 +00:00
jan.nijtmans 8d52e0f41d Fix [31c54e6a59]: Add missing test files.
Put back excluded_pages in tcltk-man2html.tcl: As long as Tk 8.7b1 is not updated, this is needed to make the Tk 8.7b1 build work at all.
2023-12-08 11:04:27 +00:00
jan.nijtmans dd6443e818 Backout [b88bac358d]: "Experimental: update automatic build instructions". Build is already broken for 2 weeks now, no visible activity for fixing this. 2023-12-08 09:57:26 +00:00
apnadkarni 4c84bfbd39 Fix [0f1ddc0df7] - use replace profile for exec i/o 2023-12-07 03:02:18 +00:00
jan.nijtmans 72d12af6ad DTrace improvements (int -> Tcl_Size) for 9.0 2023-12-06 23:15:17 +00:00
jan.nijtmans e1ed399a98 int -> Tcl_Size for DTrace 2023-12-06 23:06:58 +00:00
bch ea8189eec1 ; termination 2023-12-06 19:44:00 +00:00
sebres 28e774dfd4 merge 8.7 (fix for [db4f2843cd]) 2023-12-06 17:35:48 +00:00
sebres 4470ef110e merge 8.6 (fix for [db4f2843cd]) 2023-12-06 17:34:12 +00:00
sebres aed6d5bb46 closes [db4f2843cd]: fixes SF by BO in ReadChars (and Tcl_ReadChars with append) 2023-12-06 17:17:38 +00:00
dkf e17509ca6c Fix introspection with TclOO resolution of consts 2023-12-06 15:01:18 +00:00
jan.nijtmans bde8234df1 Merge 8.7 2023-12-06 13:15:16 +00:00
jan.nijtmans 782a2ababb Fix [0110923366]: some (wish package) is leaving a global variable "test" set 2023-12-06 13:14:15 +00:00
jan.nijtmans eeac0f592a Merge-mark 2023-12-06 09:29:26 +00:00
jan.nijtmans b5807d74a4 typo 2023-12-06 09:28:41 +00:00
jan.nijtmans 4799d64280 WIP: Let's try to make DTrace work for Tcl 9.0 2023-12-06 09:08:59 +00:00
jan.nijtmans ddd2e380a8 Fix: /tclBasic.c:1800:32: warning: passing argument 2 of ‘Tcl_EventuallyFree’ from incompatible pointer type [-Wincompatible-pointer-types]
by reverting the DTrace 'fix': this cannot be a correct fix for Dtrace (Sorry!)
2023-12-06 08:52:41 +00:00
jan.nijtmans cf3fd8708a close fork 2023-12-06 08:37:47 +00:00
kjnash 8025e899e1 Rename commands http::socketForTls -> http::socketAsCallback, http::socket -> http::AltSocket. 2023-12-06 01:37:11 +00:00
sebres 552ef1ca02 closes [db4f2843cd]: fixes SF by BO in ReadChars (and Tcl_ReadChars with append) caused by wrong buffer enlarge if objPtr shimmering to unicode for whatever reason,
since Tcl_AppendToObj prefers unicode to bytes, whereas Tcl_SetObjLength prefers bytes (like the ReadChars)
2023-12-05 22:42:02 +00:00
bch c811a4a118 Fix DTrace-enabled (--enable-dtrace) build on NetBSD.
vis: dtrace: failed to link script /home/bch/work/tcl/generic/tclDTrace.d: an error was encountered while processing tclBasic.o

Bisecting led me to:

katy$ fossil bisect status
2023-10-11 10:28:31 a19b5c1f83 BAD
2023-10-11 05:26:06 b82abeca2e GOOD
2023-12-05 21:22:19 +00:00
kjnash 2142af1cce Generalise http::register etc and revise recent changes that were tls-only. 2023-12-05 17:32:45 +00:00
oehhar e42a41e942 Comment correction: Error channels should *not* raise encoding errors 2023-12-05 17:29:53 +00:00
apnadkarni 0927e6c719 Also ensure no encoding exceptions raised when reading pipe stderr 2023-12-05 16:57:32 +00:00
dkf 345dcdfb8a Bytecode implementation 2023-12-05 15:48:03 +00:00
apnadkarni 308b1e88ef Proposed fix for [0f1ddc0df7]. 2023-12-05 13:44:15 +00:00
apnadkarni a8eecb77ea Test case for bug 2023-12-05 13:09:22 +00:00
jan.nijtmans e47abb41b4 Merge 9.0 2023-12-05 13:06:29 +00:00
jan.nijtmans 7378afc792 Documentation update 2023-12-05 12:55:48 +00:00
dkf 4d0ad9c0f9 Prepping to work on compilation 2023-12-05 12:38:35 +00:00
kjnash 704807694a Define http(usingThread) more precisely 2023-12-05 11:55:14 +00:00
jan.nijtmans 713d46ad87 Add (back) testcases for the compabitiliby macro's (which need TCL_8_API now) 2023-12-05 10:41:22 +00:00
dkf 026bf1d780 Added introspection 2023-12-05 10:29:46 +00:00
jan.nijtmans 64a16677ca TIP #661 implementation: Disable the Tcl 8 compatibility macros in Tcl 9 by default. Revert TIP #664 2023-12-05 09:52:36 +00:00
jan.nijtmans b1ad6035af Revert TIP #664 (put back the type-casts) 2023-12-05 09:27:04 +00:00
dkf 48184d1295 Much more testing, semantic tweak 2023-12-04 13:33:22 +00:00
kjnash 0a97f6d1c5 Fix for ticket [bbaf69c3dd] (test http-4.15.*). Do not rely on tk TLD. Increase timeout to 30s. More precise comments. 2023-12-03 13:25:47 +00:00
kjnash 0472bb4180 Create new branch named "bugs-http-8c3de50-bbaf69c" 2023-12-03 12:21:01 +00:00
dkf e526949328 Implementation of reasonable set of tests 2023-12-02 20:32:03 +00:00
dkf c5520c45cf We're doing TDD here! 2023-12-01 16:22:34 +00:00
oehhar 71697a4e18 Merge 8.7 2023-11-30 20:06:17 +00:00
oehhar 06bbf33d32 Remove 8.6 specific documentation 2023-11-30 19:28:20 +00:00
oehhar 58e6a44e32 Merge 8.6 2023-11-30 19:26:35 +00:00
oehhar 89082683ad Merge 8.6 2023-11-30 19:25:21 +00:00
oehhar 516659e2fc MS-Win: document the exec %var% re-allowance. Ticket [fb2fa9b3f6] 2023-11-30 19:23:50 +00:00
oehhar f22a7c3103 Tickets [fb2fa9b3f6] [21b0629c81]: ms-win: revert security patch to quote each %-character seperately to avoid environment expansion. More generel solution with command parameters required. 2023-11-30 18:57:36 +00:00
oehhar c3cbc80503 Merge core-8-6-branch 2023-11-30 18:15:28 +00:00
oehhar b67b2a8dc3 Remove comment sign from winPipe slowtest. I suppose, this is not intentionaly. 2023-11-30 18:12:44 +00:00
dgp bff0925f66 merge trunk 2023-11-29 17:50:36 +00:00
dkf 940c992476 Start of tests 2023-11-29 14:26:50 +00:00
dkf 6f92bf2cbe Command defined. It does nothing yet. 2023-11-27 15:22:39 +00:00
jan.nijtmans 1cc398b57c typo 2023-11-27 12:29:09 +00:00
jan.nijtmans 63016dd6e5 Merge 8.7 2023-11-27 12:13:15 +00:00
jan.nijtmans 4971f4f298 Merge 8.6. Remove out-of-date documentation (was skipped in documentation-generation anyway. 2023-11-27 12:11:16 +00:00
jan.nijtmans a130f70eb1 (cherry-pick) Corrected synopsis of namespace manual page where the subcommand was wrongly declared optional 2023-11-27 12:01:09 +00:00
dkf d1de9c1a07 Constants can't be written to or unset 2023-11-27 09:48:05 +00:00
Torsten Berg cc44a6deca Corrected synopsis of namespace manual page where the subcommand was
wrongly declared optional
2023-11-27 07:10:19 +00:00
jan.nijtmans 889c1937b2 Fix [a606b0a528]: Tcl 9.0 fails to build from source for big-endian architectures 2023-11-26 22:21:08 +00:00
dkf 45834e707b Merge main into tip-677 2023-11-25 15:08:00 +00:00
dkf d7514ecf3c Experimental: update automatic build instructions 2023-11-24 15:58:48 +00:00
jan.nijtmans 61736c4495 Merge 8.7 2023-11-24 14:38:07 +00:00
jan.nijtmans a00fd11588 Need Tcl_Size #define a little earlier (for 8.6) 2023-11-24 14:28:02 +00:00
jan.nijtmans 6d3d32f6d3 Update dde and registry (int -> Tcl_Size) 2023-11-24 14:04:21 +00:00
jan.nijtmans 06b4f6325f Merge 9.0 2023-11-24 13:28:22 +00:00
dkf a3cf966a80 Simpler to use an existing action 2023-11-24 12:50:32 +00:00
dkf 2f139493b5 Added code signing step for Windows 2023-11-23 17:19:21 +00:00
jan.nijtmans 88b1e5612f Fix [e653408972]: autoconf warning 2023-11-23 15:17:29 +00:00
jan.nijtmans a4a6708f27 Fix [e653408972]: autoconf warning 2023-11-23 15:15:43 +00:00
jan.nijtmans 752a2a1cf2 Fix [e653408972]: autoconf warning 2023-11-23 15:07:09 +00:00
dkf c033d820b6 Fixes to parsing of patchlevel 2023-11-23 15:01:28 +00:00
jan.nijtmans 90475cdd53 Merge 8.7. Remove 2 (internal) stub entries which are not used any more. 2023-11-23 14:13:44 +00:00
jan.nijtmans 4398e2fa7f Merge 8.7 2023-11-23 13:50:04 +00:00
jan.nijtmans 24a5bc97d5 Remove testgetencpath/testsetencpath test commands: Testcase can use "encoding dirs" as well. (borrowed from bug-2a0966cdc9 branch, testcase only) 2023-11-23 13:48:05 +00:00
jan.nijtmans bdd7251ca7 Merge 8.7 2023-11-23 13:25:45 +00:00
jan.nijtmans 36dec0d86d Merge-mark 2023-11-23 13:21:47 +00:00
jan.nijtmans c171b2bb9a Fix [b8a30af3da]: test failures in reg.test. Now works with -DTCL_NO_DEPRECATED and without it. 2023-11-23 13:17:57 +00:00
jan.nijtmans e8148bf607 Fix regexp test failures [b8a30af3da] 2023-11-23 08:52:15 +00:00
jan.nijtmans 0ce377d94c Fix regexp test failures [b8a30af3da] 2023-11-23 08:50:47 +00:00
dgp ca0654d3b9 Merge many improvements from trunk that look good for next rc. 2023-11-22 19:20:12 +00:00
dgp d3737e4e98 Test edits to correct failures. 2023-11-22 16:56:52 +00:00
dkf 627aaff5dc Merge 8.7 2023-11-22 12:14:13 +00:00
dkf 51607eaa4f Added missing paragraph fragment. 2023-11-22 12:13:02 +00:00
jan.nijtmans 8eb0893550 Merge 8.7 2023-11-22 12:06:21 +00:00
jan.nijtmans edcbd92630 Fix testcases for previous commit 2023-11-22 12:03:09 +00:00
jan.nijtmans f6f949b9c4 Merge 8.7 2023-11-21 08:19:25 +00:00
jan.nijtmans 3e5dcf42f5 Fix [4ed788c618]: regexp \U not fully implemented - unclear in docs 2023-11-21 08:18:25 +00:00
jan.nijtmans dbbc7b0a4a Experimental fix for [4ed788c618]: regexp \U not fully implemented - unclear in docs 2023-11-20 22:13:38 +00:00
jan.nijtmans 6a16674902 Merge-mark 2023-11-20 21:13:18 +00:00
jan.nijtmans e92f56554c Missing "static" keywords in various places. 2023-11-20 21:09:58 +00:00
jan.nijtmans 9977a11835 Merge 8.7 2023-11-20 20:47:18 +00:00
jan.nijtmans 65df75671e Merge 8.6 2023-11-20 20:46:29 +00:00
jan.nijtmans 092703d996 Fix [32b88975f7]: clock format returns spurious errors 2023-11-20 20:45:14 +00:00
jan.nijtmans 814be2e2cf Merge 8.7 2023-11-20 20:38:03 +00:00
jan.nijtmans 58b64de3bf Undo previous commit. Add "static" keywords in various places instead. This should fix the problem too. 2023-11-20 20:36:04 +00:00
jan.nijtmans af27002bd7 More (internal) stub table cleanup 2023-11-20 20:24:19 +00:00
jan.nijtmans e043c623f7 Fix TclpGetPid() signature (should use Tcl_Size, not size_t) 2023-11-20 20:07:43 +00:00
dgp eec2374666 merge 8.7 2023-11-20 19:52:57 +00:00
dgp 24ad51e42e Add TCL_INDEX_TEMP_TABLE to avoid storing pointers to a table on the stack
that will not live long enough to stay valid.  Crash hazard.
2023-11-20 19:52:31 +00:00
oehhar b6b07c4cfb fcopy doc: some refinments 2023-11-20 16:56:42 +00:00
oehhar 52e8a70672 fcopy doc: remove depreciation in tcl9, this is 8.7. 2023-11-20 16:54:38 +00:00
oehhar 69ffd31442 Ticket [a173f9229f]: fcopy man page: document encoding error behaviour. Depreciate tcl8 encoding profile and same encoding = binary mode 2023-11-20 16:45:15 +00:00
oehhar 4cef082ec6 Ticket [a173f9229f]: fcopy man page: document encoding error behaviour. Depreciate tcl8 encoding profile and same encoding = binary mode. 2023-11-20 16:31:09 +00:00
oehhar 23c8c9bc2c Fix bug [a173f922]: fcopy does not write leading correct chars on later encoding error. 2023-11-20 13:55:31 +00:00
oehhar ee5350e804 Fix bug [a173f922]: fcopy does not write leading correct chars on later encoding error. 2023-11-20 13:36:40 +00:00
oehhar 88a32b8959 Merge core-8-branch 2023-11-20 13:32:47 +00:00
oehhar ee8ac648cb Bug [a173f922]: fix bug: fcopy does not write leading correct chars on later encoding error. 2023-11-20 13:15:41 +00:00
jan.nijtmans edcc6e521c Remove legacy stuff related to Tcl_LinkVar() 2023-11-20 10:58:35 +00:00
jan.nijtmans 323e04f5a1 Remove some macro's that don't make much sense any more (Noted by Massimo Manghi, thanks!) 2023-11-20 10:40:12 +00:00
jan.nijtmans b80ec99614 Rebase to 9.0 2023-11-20 08:48:14 +00:00
jan.nijtmans ec6f4cede6 TIP #653: Handle consumed data of channel commands in case of encoding errors 2023-11-18 23:36:31 +00:00
jan.nijtmans c3de06ef32 TIP #653: Handle consumed data of channel commands in case of encoding errors 2023-11-18 23:32:02 +00:00
oehhar 086b119669 Remove currently failing test io-52.20.1 to check right file position after fcopy encoding read error 2023-11-18 17:20:58 +00:00
oehhar 6a9b725dfc Remove currently failing test io-52.20.1 to check right file position after fcopy encoding read error 2023-11-18 17:18:42 +00:00
jan.nijtmans c5bc902f18 Merge 8.7. Also fix Windows symbols build with Visual Studio 2023-11-18 15:27:58 +00:00
jan.nijtmans aa31e771b6 Merge 8.6 2023-11-18 15:21:48 +00:00
jan.nijtmans 44259e9b29 "stoponerror" == "profilestrict" (and not used anyway) 2023-11-18 15:17:45 +00:00
jan.nijtmans df18d9393c [f8c52a8c53]: CI: Add 32-bit Linux job 2023-11-17 22:43:58 +00:00
jan.nijtmans 4e03d27cba Remove binary-80.5 testcase. This testcase was testing the error-reporting capability of the 32-bit compabitility function. Will be useless after TIP #661 2023-11-17 21:58:53 +00:00
dgp dee36b44e8 merge 8.7 2023-11-17 16:27:32 +00:00
dgp 64b0714cce test suite debugging. [removeFile] matches [makeFile] and not [writeFile]. 2023-11-17 15:49:56 +00:00
jan.nijtmans 8c5020cd1a Merge-mark 8.6 2023-11-17 15:36:02 +00:00
jan.nijtmans b286637e28 Cherry-pick [90e09ca320]: silence compiler warning 2023-11-17 15:35:13 +00:00
dgp 5dd218ca60 silence compiler warning 2023-11-17 15:19:36 +00:00
jan.nijtmans a0170fe2fa Merge 8.7 2023-11-17 12:16:53 +00:00
jan.nijtmans 0d75817bea Add "knownBug" constraint to new testcase: io-52.20.1 2023-11-17 12:15:57 +00:00
jan.nijtmans 56d6e177aa Don't bother testing the compatibility macro's any more. 2023-11-17 08:01:29 +00:00
jan.nijtmans 0798e7cb19 make Tcl_GetByteArrayFromObj() macro work without stubs as well (in statically linked extensions) 2023-11-17 07:58:25 +00:00
jan.nijtmans 4b1dc921ef Revise macro usage 2023-11-16 23:21:20 +00:00
jan.nijtmans bf9931fbfa Remove "Dummy entry for stubs table backwards compatibility" code. No longer needed in Tcl 9.0 2023-11-16 19:37:35 +00:00
jan.nijtmans 6e58f7f828 Fix binary/format/string testcase failures on 32-bit platforms. Reported by Harald Oehlmann. 2023-11-16 19:26:36 +00:00
oehhar 901304bbca Add currently failing test io-52.20.1 to check right file position after fcopy encoding read error 2023-11-16 17:08:54 +00:00
oehhar 772bec7f0f Add currently failing test io-52.20.1 to check right file position after fcopy encoding read error 2023-11-16 17:07:31 +00:00
oehhar 55fd12924e Merge core-8-branch 2023-11-16 17:04:14 +00:00
dkf 21dcf6c279 merge core-8-branch 2023-11-16 09:29:48 +00:00
griffin d1eed31cc3 Add missing test files. A partial fix for bug [31c54e6a591ea]. 2023-11-16 00:05:25 +00:00
dkf ceffda6075 Fix broken tests 2023-11-15 16:07:34 +00:00
dkf bb74d876c9 Remnants from TIP 567's implementation 2023-11-15 15:37:43 +00:00
jan.nijtmans 6478861fa5 Merge 8.7 2023-11-15 08:28:30 +00:00
dkf 626503545b TIP #670: Simple Extra Procedures for File Access 2023-11-14 19:56:40 +00:00
dgp cd515c4321 merge trunk 2023-11-14 19:10:15 +00:00
jan.nijtmans 1deb9621af Merge 8.7 2023-11-14 19:04:18 +00:00
dgp 5a258ffccd Missing/broken test constraints 2023-11-14 18:48:38 +00:00
jan.nijtmans 2e628b79d9 Add test for blocking mode 2023-11-14 11:07:13 +00:00
jan.nijtmans c12814c9d4 Merge 8.7 2023-11-13 20:24:45 +00:00
dgp 097954529a remove debugs 2023-11-13 20:10:15 +00:00
dgp 3052212dee merge 8.7 2023-11-13 19:52:35 +00:00
dgp f0c0a10b82 Find script library in zipfs archive and inform Tcl library how to direct
every interp to find it when created without fuss.

BACKED OUT the merge to trunk. Multiple reports that the change makes some build configurations fail
2023-11-13 19:48:53 +00:00
dgp 480e67920e Now that the robust, early method of directing Tcl to find its script
library in the zipfs archive is in place, we can yank out the hacky approach
of defining a semi-secret command to extend a search path.

Re-open the feature branch.  Integration was pulled back when some
reports of failures on some build configurations came in.
2023-11-13 19:36:30 +00:00
dgp 4c391a13ae Make calls early to find the script library in zipfs archive and alert
the Tcl library to its location so that all interps find it when created.
2023-11-13 19:24:20 +00:00
oehhar a71edde2ea Bug [a173f922]: fcopy encoding error file position issues: read error test (failing currently) 2023-11-13 17:38:29 +00:00
dgp 7bb4d6043c merge 8.7 2023-11-13 17:36:48 +00:00
oehhar 7dc00ec382 Bug [c4eb46a1]: endless loop on non blocking gets with encoding error. No additional failing tests. 2023-11-13 16:19:14 +00:00
oehhar d0863453cc Bug [c4eb46a1]: endless loop on non blocking gets with encoding error. Now, tests zlib-8.21 and zlib-8.22 fail with unknown reason, but better than a hang. 2023-11-13 15:35:55 +00:00
dkf da8146f9dd Blooperfix 2023-11-13 14:49:45 +00:00
dkf 323c70e2f7 Remnants from TIP 567's implementation. The feature was done ages ago. 2023-11-13 14:16:41 +00:00
jan.nijtmans 6caba0a0e6 Merge 8.7 2023-11-13 14:09:25 +00:00
jan.nijtmans ffbbb271c1 Fix for TIP #641: If sizeof(*(boolPtr)) > sizeof(int), generate a compiler-error. Requested by @pointsman 2023-11-13 13:46:31 +00:00
oehhar f2f6583742 Bug [c4eb46a1]: non-blocking gets fires the error on 2nd call when sequence is incomplete. Added some test cases. 2023-11-13 12:48:06 +00:00
jan.nijtmans f60bcc7e1e Simplify TIP #656: "A revised proposal for encodings". Make TCL_ENCODING_PROFILE_??? values the same as in Tcl 9.0 after TIP #657: Make "-profile strict" the default in Tcl 9.0 2023-11-13 12:36:34 +00:00
jan.nijtmans 346628a9b8 TIP #657: Make "-profile strict" the default in Tcl 9.0 2023-11-13 10:20:43 +00:00
jan.nijtmans 1fa28c73f4 Rebase to 9.0. Document the TCL_8_API flag. 2023-11-13 08:58:49 +00:00
oehhar 44f9c28e41 bug [c4eb46a1]: fix was effective for test sequence "A\xC3B", but not for "A\x81". So add test io-75.6.1 with first sequence, io-75.6.2 is currently failing, as the gets does not return with an error. 2023-11-12 19:32:07 +00:00
oehhar b62a3d44ea Bug [c4eb46a1]: endless loop on gets, non blocking, profile strict, encoding error: remove non-blocking exit condition and add test case 2023-11-12 18:55:01 +00:00
jan.nijtmans 1d0a01ece9 Put back accidently removed line 2023-11-12 17:06:19 +00:00
jan.nijtmans 7c3be24178 Fix compiler warning (Tcl_Size != Tcl_WideInt) 2023-11-12 17:01:32 +00:00
jan.nijtmans 65d7ec626d TIP #664: Enable compiler warnings for missing int → Tcl_Size conversions 2023-11-12 16:51:03 +00:00
jan.nijtmans 716a20f7e5 Merge 8.7 2023-11-10 14:24:15 +00:00
jan.nijtmans 6e5c5c71b7 Merge 8.6 2023-11-10 14:23:17 +00:00
jan.nijtmans 67b84b71c6 Fix [54a305cb88] (second part) by hand-editing tclDate.c. 2023-11-10 14:22:06 +00:00
jan.nijtmans 7a9f7248b9 Merge 8.7 2023-11-10 14:00:55 +00:00
jan.nijtmans c7b5a5ddf9 Merge 8.6 2023-11-10 13:59:59 +00:00
jan.nijtmans aaf72b94fa Fix typo's in tclGetDate.y 2023-11-10 13:55:54 +00:00
jan.nijtmans 8dabc4aee2 Rebase to latest 9.0 2023-11-10 13:12:52 +00:00
jan.nijtmans fb02c7f008 Rebase to latest 9.0 2023-11-10 13:11:29 +00:00
oehhar 36b64ba2fa exec.n documentation: add chapter about MS-Windows quoting. 2023-11-10 11:01:08 +00:00
oehhar 386369935e exec.n documentation: add chapter about MS-Windows quoting. 2023-11-10 11:00:11 +00:00
oehhar 22f472b5f2 exec.n documentation: add chapter about MS-Windows quoting. 2023-11-10 10:56:54 +00:00
oehhar a4ac20392a Exec wordsmithing. Thanks, Sergey! 2023-11-10 10:54:39 +00:00
jan.nijtmans 7f3a2efae7 Fix Windows build with --disable-shared: Make sure that test-code is never compiled with -DBUILD_tcl -DSTATIC_BUILD 2023-11-10 09:54:42 +00:00
jan.nijtmans 3618a56720 Merge 8.7 2023-11-10 09:07:55 +00:00
jan.nijtmans e9a8f8e9d8 Merge 8.6 2023-11-10 08:55:50 +00:00
jan.nijtmans af67150cae Recommend Tcl_CreateObjCommand over Tcl_CreateCommand 2023-11-10 08:55:04 +00:00
jan.nijtmans 4626fe265c (partial) fix [54a305cb88]: warning: variable set but not used [-Wunused-but-set-variable] 2023-11-09 21:54:57 +00:00
jan.nijtmans 62002109e6 Merge 8.7 2023-11-09 08:28:20 +00:00
jan.nijtmans bf71b77860 Wrong type-cast 2023-11-09 08:27:36 +00:00
jan.nijtmans 7d1990e3ca Merge 8.7 2023-11-08 22:40:03 +00:00
jan.nijtmans 6fd38cd1bc Fix [18f2432b0db2bc08]: Tcl_FSSplitPath compiler warning about macros 2023-11-08 22:33:13 +00:00
dgp b50cf76d6f In the zipfs archive initialization, use Tcl_SetPreInitScript() to equip
the creation of every interp by the Tcl library with the knowledge of where
in the archive the script library is to be found.

This is the **documented example usage** for Tcl_SetPreInitScript.

POSTSCRIPT: Moved to development branch.  Still needs some verification.
2023-11-08 21:46:48 +00:00
dgp 3d8bfac0f9 merge 8.7 2023-11-08 15:50:45 +00:00
jan.nijtmans 4a02acc8b1 Merge 8.7 2023-11-08 12:14:56 +00:00
jan.nijtmans ef791b8067 Remove version number from stub library, for Tk 9.0 2023-11-08 12:11:23 +00:00
jan.nijtmans 35533f1d65 Merge 9.0 2023-11-08 09:15:33 +00:00
jan.nijtmans 994d65042f Tcl_GetByteArrayFromObj -> Tcl_GetBytesFromObj everywhere in core, since it has the possibility of better error-reporting. This fixes the -DTCL_NO_DEPRECATED build failure 2023-11-08 09:12:13 +00:00
jan.nijtmans d911ff5d32 Rebase to TIP #664 2023-11-07 23:13:36 +00:00
jan.nijtmans 2ac463d78c Rebase to latest 9.0 2023-11-07 23:05:19 +00:00
jan.nijtmans fcccf8ec89 Place compatibility macro's in a single section. This makes TIP's #661/#664 a lot more readable 2023-11-07 21:32:44 +00:00
jan.nijtmans 142ffa90b4 The stub library doesn't have a version any more in Tcl 9.0 2023-11-07 15:07:57 +00:00
jan.nijtmans 32be1a48c2 TCL_USE_STUBS -> USE_TCL_STUBS (typo) 2023-11-07 15:03:54 +00:00
oehhar 1c4be630c6 Merge mark, no changes 2023-11-07 12:45:02 +00:00
oehhar d33629d929 Correct some test numbers and descriptions 2023-11-07 12:44:21 +00:00
oehhar 436509ded2 TIP 653: adopted implementation to new text to only return "-data" if potential data loss. Check for non-blocking missing 2023-11-07 12:42:54 +00:00
oehhar cea34b6d98 Remove the quoting example by ". It is more complicated than that, so be quiet. 2023-11-06 16:45:18 +00:00
oehhar 352f3ff588 Exec documentation: refine Windows quoting section (thanks, Sergey !) 2023-11-06 16:36:58 +00:00
oehhar b072039e21 Document tip-653 changes on read: Key "-data" for already decoded data on encoding error 2023-11-06 15:47:32 +00:00
oehhar 44db33ce59 Merge core-8-branch 2023-11-06 15:24:37 +00:00
oehhar ad31fb2e76 Merge core-8-branch: documentation of read/gets/puts behaviour when throwing encoding errors 2023-11-06 15:22:03 +00:00
oehhar 0f91665f15 Document read/gets/puts behaviour when throwing encoding errors 2023-11-06 15:15:38 +00:00
oehhar b0bcd99f08 Refine read and gets documentation for encoding error case 2023-11-06 15:10:18 +00:00
jan.nijtmans e7d900c0d6 Missing use of TCL_NO_DEPRECATED (for Tcl_GetByteArrayFromObj) 2023-11-06 13:52:37 +00:00
jan.nijtmans 3cd191d87e Revive TIP #661 (but without the "configure" stuff, which makes no sense IMHO) 2023-11-06 13:20:29 +00:00
jan.nijtmans fbc5fc9cfe Rebase to latest 9.0 2023-11-06 12:28:53 +00:00
oehhar c6d4c4edeb Mixed-up -blocking 0/1 2023-11-05 17:59:09 +00:00
oehhar eb121d13b5 Worked on examples for read and gets 2023-11-05 17:56:27 +00:00
oehhar 6e78bdfc14 Add read example 2023-11-04 12:43:29 +00:00
oehhar 912145cd32 Rename test io-75.9. Current name seams to be a left-over 2023-11-03 21:27:26 +00:00
oehhar e6814e9d26 Close fork 2023-11-03 21:24:51 +00:00
oehhar 9a1bd729d2 Add encoding error chapters to the man apge of gets, read and puts. C library still pending. Review welcome 2023-11-03 20:19:51 +00:00
dgp 27a1d940ff merge trunk 2023-11-03 20:04:25 +00:00
dgp ebaa3516ce merge 8.7 2023-11-03 19:35:21 +00:00
oehhar 8ae3f76e6e Add unbalances .RS in doc/filename.n 2023-11-03 19:15:42 +00:00
dgp c0b8bb720e merge 8.7 2023-11-03 18:35:46 +00:00
dgp c544d4e618 Missing test constraints 2023-11-03 16:53:11 +00:00
dgp f776d13f5e merge 8.7 2023-11-03 13:23:37 +00:00
dgp 2ffcfc525b test constraint housekeeping 2023-11-03 13:23:08 +00:00
dgp 726af57a2d merge 8.7 2023-11-03 12:53:39 +00:00
oehhar 05adca5256 Ticket [21b0629c] introduced additional exec quoting for Windows, but did not document it. Here is a proposed documentation. 2023-11-03 11:25:01 +00:00
griffin cc40fddd66 Corrections to object man page. 2023-11-03 01:09:18 +00:00
oehhar c4b1e16389 Merge main 2023-11-02 17:00:55 +00:00
oehhar 3928c1068a Merge core-8-branch 2023-11-02 17:00:21 +00:00
dgp 69fb959ca6 When there is a zipfs archive in use to house the script library and
TclZipfs_TclLibrary() is called to confirm the presence of an init.tcl
file in it, include in that routine setting up the encoding subdirectory
as the default encoding search path.  We know early we are using an archive.
Don't let the library go off on a wild search through the native filesystem
looking for the encoding data files.
2023-11-01 20:21:03 +00:00
dgp 21e5eb5e3e Testing commands [test(g|s)etencpath] have evolved themselves into functional
duplicates of [encoding dirs].  We don't need them anymore.
2023-10-30 19:32:29 +00:00
dgp cf4672dec5 merge 8.7 2023-10-30 19:06:54 +00:00
jan.nijtmans 329d72eab4 Merge 8.7 2023-10-29 22:07:03 +00:00
jan.nijtmans 6963024f13 Merge 8.6 2023-10-29 22:02:33 +00:00
jan.nijtmans 07279ebb64 Fix [0219fb7511]: tclIO.c: avoid -Wstrict-prototypes warning. Some code cleanup 2023-10-29 21:45:31 +00:00
jan.nijtmans f9687a16d3 Merge 8.7 2023-10-27 17:14:46 +00:00
jan.nijtmans 14ab5ccf54 [26870862f0] follow-up: of course it was not complete yet 2023-10-27 17:13:59 +00:00
jan.nijtmans 587add1342 Merge 9.0 2023-10-27 15:12:02 +00:00
jan.nijtmans 7cb17af411 Merge 8.7 2023-10-27 15:11:24 +00:00
jan.nijtmans da07fbe022 More C++-sentinel-related fixes (hopefully, those are the last ones) 2023-10-27 15:03:27 +00:00
sebres 4221d111bd fixes percent-subst regression [fb2fa9b3f6] introduced by fixing of vulnerability [21b0629c81];
warning (todo): since it'd reopen a injection-vector by execution of command processor/batch-files as described in [fb2fa9b3f6] (unexpected tripple/double quote), 
[exec] as well as [open |...] should get new option for safe escape (or no .bat/.cmd/comspec execution with arguments from foreign input can be considered as safe without extra parameters validation).
2023-10-27 10:46:17 +00:00
sebres 49e6cd0d8b better readability for winPipe.test (naming flags), no functional changes 2023-10-27 10:26:15 +00:00
jan.nijtmans c0a8070973 Final fix for [8ab8a138c9]: functions passed to Tcl_EventuallyFree() must be declared/defined as Tcl_FreeProc.
Don't try to suppress the warning any more, as it even confuses UBSan more than that it helps
2023-10-26 20:08:53 +00:00
dgp bef8502026 merge 8.7 2023-10-25 19:27:52 +00:00
dgp bbb40200fd merge 8.6 2023-10-25 19:27:18 +00:00
dgp ae695082ee Obsolete tests unixInit-2.* testing older versions of the internal routine
TclpInitLibraryPath() have been skipped since at least Tcl 8.5.2.  Remove them.
2023-10-25 19:18:14 +00:00
dgp 7c3322a2ee Since TIP 258 (2005) and development efforts leading up to it (2004), the
Tcltest package has not been a caller of routines Tcl(Get|Set)LibraryPath,
so there's no longer a need for those to be in the internal stubs table.

After they are removed from the table, they no longer need to exist at all.
2023-10-25 17:57:00 +00:00
jan.nijtmans deababb033 Merge 8.7 2023-10-24 15:29:51 +00:00
jan.nijtmans 0b4cf50a01 Fix build-info for 64-bit Windows: This is not an "ilp32" platform 2023-10-24 13:53:38 +00:00
jan.nijtmans e95344d288 Merge 9.0 2023-10-22 19:56:20 +00:00
jan.nijtmans 2d34656de0 Remaining fixes for [26870862f0]: Wrong sentinel in Tcl_SetErrorCode usage 2023-10-22 19:49:24 +00:00
apnadkarni e2f18cc342 Merge 8.7 - Bug [31fc36fe47] - socket crash with multiple threads. 2023-10-21 14:51:14 +00:00
apnadkarni 254af8ec3e Bug [31fc36fe47] - socket crash with multiple threads. 2023-10-21 14:13:11 +00:00
apnadkarni 492a02091d Proposed fix 2023-10-21 13:00:54 +00:00
apnadkarni 16620c09c8 Test for Windows socket crash 2023-10-21 11:29:44 +00:00
apnadkarni 5dea841618 Merge 8.7 - Bug [33b2486199] - thread create/release unmounts zipfs 2023-10-21 06:09:14 +00:00
apnadkarni ffb1230a3c Bug [33b2486199] - thread create/release unmounts zipfs 2023-10-21 05:48:54 +00:00
apnadkarni a21682acad Move zipfs finalization to TclFinalizeFilesystem 2023-10-21 04:14:33 +00:00
apnadkarni d5396e3590 Potential fix 2023-10-20 17:01:48 +00:00
apnadkarni 6aa2bc6d5c Add test to trigger bug 33b2486199 2023-10-20 16:53:14 +00:00
jan.nijtmans 00b0ab809d Merge 8.6 2023-10-20 09:36:27 +00:00
jan.nijtmans 0da684fdc5 (cherrypick) small part of: [26870862f0]: Wrong sentinel in Tcl_SetErrorCode usage; Handle any C++-compiler as well 2023-10-20 09:35:20 +00:00
jan.nijtmans 08b5236081 Merge 8.6 2023-10-20 08:26:08 +00:00
jan.nijtmans c28fb81c12 Fix [9d216917e]: nmakehlp.c: remove unused include math.h 2023-10-20 08:24:47 +00:00
jan.nijtmans 6eac416e1d Merge 8.7 2023-10-19 18:48:35 +00:00
jan.nijtmans 9d3abb8846 (cherry-pick): document available TCL_TCPSERVER_* flags 2023-10-19 18:25:25 +00:00
jan.nijtmans c90945e7f3 Fix [26870862f0]: Wrong sentinel in Tcl_SetErrorCode usage; Handle any C++-compiler as well 2023-10-19 18:09:11 +00:00
jan.nijtmans 6def0d48c1 Handle sentinels for any C++ compiler 2023-10-17 06:02:36 +00:00
dgp fdb568c35f merge 8.6 2023-10-16 20:54:38 +00:00
dgp 37a36056c6 Missing cleanups that can cause conflicts in "-singleproc 1" testing. 2023-10-16 20:52:24 +00:00
bch 12f22db7d8 document available TCL_TCPSERVER_* flags 2023-10-16 18:39:51 +00:00
dgp 4e528b8c42 test hygiene 2023-10-16 18:18:58 +00:00
apnadkarni 9beca91cdb Merge 8.7 - Add missing zipfs test zip 2023-10-16 04:04:42 +00:00
apnadkarni e42609ff31 Add missing zipfs test zip 2023-10-16 04:03:35 +00:00
jan.nijtmans f88da52b98 Merge 8.7 2023-10-15 21:50:56 +00:00
jan.nijtmans 7ab31a0335 C++ doesn't accept "register" keyword 2023-10-15 21:47:03 +00:00
jan.nijtmans 8be498883b Merge 8.6. Use (void *)NULL in stead of NULL for C++ 2023-10-15 17:54:36 +00:00
apnadkarni 58782fea25 Merge 8.7 - nmake static install 2023-10-15 14:43:54 +00:00
apnadkarni e8c71c8d77 Fix broken nmake static install 2023-10-15 14:38:44 +00:00
apnadkarni a50c421b73 Merge 8.7 2023-10-15 12:55:05 +00:00
jan.nijtmans 8fda4dd375 Fix [26870862f0]: Wrong sentinel in Tcl_SetErrorCode usage 2023-10-15 11:51:54 +00:00
apnadkarni 79dbad99aa Refactor mount_data api as to not duplicate mount command functionality. Needs revisiting as mount_data is not even in TIP 430 2023-10-15 11:45:35 +00:00
oehhar 09ee370c27 Comment correction 2023-10-15 11:27:00 +00:00
oehhar ab8f666805 Comment correction 2023-10-15 11:25:34 +00:00
apnadkarni 5595331ecc Merge 8.7 - zipfs path, memory leak 2023-10-15 11:08:44 +00:00
apnadkarni de376d4360 Fix memory leak [9525f4c8bc] and zipfs path handling [c3364db38a] and others 2023-10-15 10:33:02 +00:00
apnadkarni fead0fac7d Fix zipfs long path memory leaks [9525f4c8bc] 2023-10-15 10:12:55 +00:00
apnadkarni 8c2f47321d More fixes, update docs 2023-10-15 06:32:31 +00:00
jan.nijtmans 89f97dbf5d Merge-mark 2023-10-14 21:26:40 +00:00
jan.nijtmans 3ce94d7a92 Missing !endif (in previous commit) 2023-10-14 21:25:42 +00:00
apnadkarni 8c3b029c07 Eliminate CanonicalPath - obsolete 2023-10-14 17:07:20 +00:00
apnadkarni d64ced490d Redo zipfs path handling 2023-10-14 15:51:20 +00:00
apnadkarni d39a902331 Create new branch named "apn-zipfs-paths" 2023-10-14 15:36:14 +00:00
jan.nijtmans caa410bb06 Merge 8.7 2023-10-13 21:49:19 +00:00
jan.nijtmans a0eabd9b69 Fix C++ errors, e.g: "generic/tclZipfs.c:5598:6: error: cannot jump from this goto statement to its label" 2023-10-13 21:37:47 +00:00
jan.nijtmans 25b533a524 Merge 8.7 2023-10-13 16:00:45 +00:00
jan.nijtmans 564c7bd9eb Merge 8.6 2023-10-13 15:28:55 +00:00
jan.nijtmans 6919903c10 Restore to rules.vc version 10, so we don't accidentally use Tcl 8.7/9.0 features 2023-10-13 14:59:52 +00:00
jan.nijtmans 559178bdc0 Fix [52dbc4b3f8]: tclInterp.c: Tcl_Free() called through pointer of incorrect type 2023-10-13 14:33:24 +00:00
jan.nijtmans 4e4d04e66e Merge-mark 2023-10-13 14:06:32 +00:00
jan.nijtmans bfa39cdd57 Fix warning on MacOSX: "/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libtcl8.6.a(tclAlloc.o) has no symbols". Backported from 8.7 2023-10-13 13:50:10 +00:00
jan.nijtmans d953489004 Proposed fix for [abd489a1c]: TclStringCmp() calls functions through pointer to incorrect type. Modified, swapping the wrapping-order 2023-10-13 13:27:40 +00:00
jan.nijtmans b5e611c7ee Merge 8.7 2023-10-12 15:22:44 +00:00
jan.nijtmans 830088187a Merge 8.7 2023-10-12 15:20:40 +00:00
jan.nijtmans e6a868c242 Fix [ad5a57f2f2]: Functions passed to Tcl_CreateFileHandler() must be declared/defined as Tcl_FileProc.
Also, add some type-casts
2023-10-12 15:11:10 +00:00
jan.nijtmans 2a8151fd1a Those type-casts don't work well in C++ 2023-10-12 14:46:42 +00:00
jan.nijtmans 6cfac6b9fb Merge 8.7 2023-10-12 14:41:31 +00:00
jan.nijtmans af04412573 Merge 8.6 2023-10-12 14:40:34 +00:00
jan.nijtmans ea1d0bdda1 Fix [bf899d6d6d]: tclUnixSock.c: remove unnecessary cast 2023-10-12 14:38:09 +00:00
apnadkarni a8542abb38 Add --disable-zipfs config to github actions 2023-10-12 11:33:17 +00:00
apnadkarni 0a832d5b48 Merge 8.7 2023-10-11 17:41:42 +00:00
apnadkarni 14998a5fff Minor source readability and delete obsolete code 2023-10-11 17:19:52 +00:00
jan.nijtmans 19fb4adbca Merge 8.7 2023-10-11 10:28:31 +00:00
jan.nijtmans e5922ea9f5 Merge 8.6 2023-10-11 10:05:30 +00:00
jan.nijtmans 76c89fce6c Fix [8ab8a138c9]: Functions passed to Tcl_EventuallyFree() must be declared/defined as Tcl_FreeProc 2023-10-11 09:45:45 +00:00
jan.nijtmans a64802e7ed Remove typecasts, just define directly as Tcl_FreeProc 2023-10-11 09:15:09 +00:00
apnadkarni 4ac2c6c6be Merge 8.7 2023-10-11 05:26:06 +00:00
apnadkarni 646abe64b8 Minor nmake tweaks, remove obsolete target 2023-10-11 04:53:25 +00:00
apnadkarni 96bbf467f1 Bug [894e11d7f7] - fix broken test configuration for zipfs builds - nmake version 2023-10-11 03:57:00 +00:00
jan.nijtmans 6ace68f992 Merge 8.7 2023-10-10 19:40:31 +00:00
jan.nijtmans 7e71979543 More int -> Tcl_Size (backported from 9.0) 2023-10-10 19:27:54 +00:00
apnadkarni 490dc70b4f Bug [894e11d7f7] - fix broken test configuration for zipfs builds - nmake version 2023-10-10 15:01:28 +00:00
apnadkarni 9486de5359 Create new branch named "bug-894e11d7f7-nmake" 2023-10-10 14:58:47 +00:00
jan.nijtmans 9d1989bb3d Handle Tcl_SetResult() the same way as Tcl_EventuallyFree 2023-10-10 11:49:11 +00:00
jan.nijtmans 0cc51f1259 Follow-up for extensions: This way, usage of Tcl_EventuallyFree() won't give warnings any more. Only do this for 8.6 and 8.7, _not_ for 9.0! 2023-10-10 11:37:16 +00:00
jan.nijtmans 462e3dd262 Proposed fix for [8ab8a138c9]: Do not pass incompatible function pointers to Tcl_EventuallyFree().
This should eliminate all warnings when using -fsanitize=function.
2023-10-10 11:35:22 +00:00
jan.nijtmans 17b84171a4 Merge 8.7 2023-10-09 20:46:01 +00:00
jan.nijtmans a2e046c6cb Merge 8.6 2023-10-09 20:42:00 +00:00
jan.nijtmans a74d73bc13 Fix [db537f8809]: tclInt.h: TclNsDecrRefCount() declaration duplicated 2023-10-09 20:39:27 +00:00
jan.nijtmans 9fb5231178 Fix [d0d0749467]: TclFSUnloadTempFile() is unused 2023-10-09 20:37:52 +00:00
jan.nijtmans 375fb23b97 Merge 8.7 2023-10-09 18:28:47 +00:00
jan.nijtmans 688957f097 Re-generate "configure" with autoconf-2.71 2023-10-09 18:26:48 +00:00
jan.nijtmans 635e02b568 Update rules.vc 2023-10-09 18:24:20 +00:00
apnadkarni f301725033 Merge 8.7 - unix test builds 2023-10-09 12:34:35 +00:00
apnadkarni 91aa048608 Bug [894e11d7f7]. Fix Unix test runs to use embedded Tcl zipfs scripts and
not external ones from the library directory.
2023-10-09 11:32:43 +00:00
apnadkarni 8fcde16321 No need to fake embedded zip now that tcltest build is fixed 2023-10-09 10:43:15 +00:00
apnadkarni a70d5fb05f Fix test targets in mingw builds to not set TCL_LIBRARY when zipfs enabled 2023-10-09 10:33:38 +00:00
apnadkarni dbc1062eae Rework to use configure as prior solution presumed Gnu make 2023-10-08 16:32:07 +00:00
apnadkarni 1366e9444c Start on fixing Unix testing of zipfs configs 2023-10-08 13:44:54 +00:00
apnadkarni 591e296099 Merge 8.7 - Have zipfs claim all paths under zipfs root. See [93eb73784a]. 2023-10-08 03:31:54 +00:00
apnadkarni cacba66bbc Have zipfs claim all paths under zipfs root. See [93eb73784a]. 2023-10-08 03:03:30 +00:00
apnadkarni 1d5660e9ce Merge 8.7 2023-10-08 02:35:00 +00:00
jan.nijtmans 33bb71db85 Merge 9.0 2023-10-06 17:03:58 +00:00
jan.nijtmans 78ce902c18 Even better: Remove TclInvokeObjectCommand completely: it isn't supposed to be called by anyone 2023-10-06 09:40:23 +00:00
jan.nijtmans 0ee1194b07 Make TclInvokeObjectCommand/TclInvokeStringCommand static functions. They are not needed/useful for extensions 2023-10-06 09:21:10 +00:00
jan.nijtmans 07279b85ab Mark (internal) symbols which are going to be removed in 9.0 with "deprecated" 2023-10-06 08:29:21 +00:00
apnadkarni a301bc01d0 Claim all paths under //zipfs:/ as zipfs paths 2023-10-05 15:39:05 +00:00
jan.nijtmans 4b56946879 int -> Tcl_Size for 2 internal functions 2023-10-05 12:09:24 +00:00
jan.nijtmans d586379ee1 Merge 8.7 2023-10-05 11:24:01 +00:00
jan.nijtmans 22a204efc2 Merge 8.6 2023-10-05 11:22:37 +00:00
apnadkarni 48c88340a9 Merge 8.7 - zipfs file write - remove size limit, do not preallocate 2023-10-05 11:07:44 +00:00
apnadkarni 071958ae7f zipfs file write - remove size limit, do not preallocate 2023-10-05 10:43:42 +00:00
jan.nijtmans d3bc39b312 Fix mingw build (broke by prev. commit) 2023-10-05 10:00:41 +00:00
jan.nijtmans 1cd6542637 Merge 8.7 2023-10-04 21:12:59 +00:00
jan.nijtmans 600c5b5954 Merge 8.6 2023-10-04 20:54:28 +00:00
jan.nijtmans 0305895d04 Make TclObjInterpProc() MODULE_SCOPE. Not needed any more in stub table 2023-10-04 20:12:13 +00:00
jan.nijtmans 6448870574 Fix TclObjInterpProc2 when compiling for Tcl 8.7 2023-10-04 19:20:37 +00:00
jan.nijtmans db1e3cef6d Merge 8.7 2023-10-04 15:24:45 +00:00
jan.nijtmans 1081ce3d81 Move some (internal) stub entries to lower numbers 2023-10-04 15:17:50 +00:00
jan.nijtmans d6de3e27b4 Fix [7371b6270b]: AddressSanitizer use-after-return detection breaks NRE tests, coroutines 2023-10-04 14:45:41 +00:00
dgp 07b2c94bc1 merge trunk 2023-10-04 14:09:01 +00:00
dgp aabe9cb3ab test suite hygiene 2023-10-04 13:53:59 +00:00
apnadkarni 3e623d0d0d Merge 8.7 - Fix [5d308081e4] zipfs append mode. 2023-10-04 13:34:14 +00:00
apnadkarni 687879b233 Fix [5d308081e4] zipfs append mode. 2023-10-04 13:19:06 +00:00
apnadkarni 36db68b9d4 Update tests for zipfs append. 2023-10-04 12:57:08 +00:00
apnadkarni 0dc647a301 Start on zipfs append mode 2023-10-04 11:49:12 +00:00
apnadkarni c748a0dc41 Merge 8.7 - zipfs docs 2023-10-04 10:01:57 +00:00
apnadkarni 06ae8c6d9e Misc fixes in zipfs manpage 2023-10-04 10:00:00 +00:00
apnadkarni 5f31c1584b Merge 8.7 - Fix [9e039ee0b9], [57f144c799] and other zipfs glob issues. 2023-10-04 09:28:58 +00:00
apnadkarni 6a7c03014a Fix [9e039ee0b9], [57f144c799] and other zipfs glob issues. 2023-10-04 09:02:27 +00:00
apnadkarni 0783fdffc6 Done with glob tests 2023-10-04 07:34:06 +00:00
apnadkarni d65d3e5a4e Fix gcc unused var warning 2023-10-04 06:48:59 +00:00
apnadkarni 7c5632f03d Some fixes, some tests 2023-10-03 16:39:56 +00:00
apnadkarni 3452f9e452 Merge 8.7 2023-10-03 06:55:56 +00:00
apnadkarni f004d6f778 Merge mark 2023-10-03 06:40:28 +00:00
apnadkarni 13bccc6130 Backport locking patch from chw 2023-10-03 06:38:06 +00:00
apnadkarni 06cca0722a Fix [48861782a9] - patch from chw 2023-10-03 06:23:16 +00:00
apnadkarni 6171301d1c Locking patch from chw 2023-10-03 05:46:17 +00:00
apnadkarni c30578df48 Create new branch named "bug-48861782a9" 2023-10-03 05:39:09 +00:00
apnadkarni 36abc5a60f Fix [8259d74a64] fix 2023-10-03 05:34:00 +00:00
apnadkarni 56f57b382a Fix [8259d74a64] fix 2023-10-03 05:00:41 +00:00
apnadkarni 378391ae59 Fix [8259d74a64] fix 2023-10-03 03:28:03 +00:00
apnadkarni c1f780ebaa Start on zipfs glob/find bugs 2023-10-02 16:31:45 +00:00
apnadkarni cc068620bf Merge 8.7 - Fix [02acab5aea], [d8a354f7d9], [62e5508ee], [4af110a6a1], [02acab5aea] - file ensemble bugs for zipfs 2023-10-02 07:00:29 +00:00
apnadkarni ec0c60f471 Fix [02acab5aea], [d8a354f7d9], [62e5508ee], [4af110a6a1], [02acab5aea] - file ensemble bugs for zipfs 2023-10-02 06:44:21 +00:00
apnadkarni c218617559 More relatively minor fixes for file ensemble on zipfs 2023-10-02 06:17:12 +00:00
jan.nijtmans 2f7d589ee1 Merge 8.7 2023-10-01 19:44:08 +00:00
jan.nijtmans 45e6a10fa7 Merge 8.6 2023-10-01 19:41:27 +00:00
jan.nijtmans 6c67bd0286 Fix [7b31677235]: tclOO.c: initialize fakeObject.refCount 2023-10-01 19:24:38 +00:00
jan.nijtmans 9220b96d3c Fix [7371b6270b]: AddressSanitizer use-after-return detection breaks NRE tests, coroutines. (patch by chrstphrchvz, with some minor modifications) 2023-10-01 19:06:33 +00:00
apnadkarni 681022822b More file ensemble tests for zipfs 2023-10-01 16:58:59 +00:00
apnadkarni 5763cd3970 Start on tests and fixes for file commands for zipfs 2023-09-30 16:17:28 +00:00
apnadkarni f62f05d3e4 Merge 8.7 - Fix [8259d74a64] - panic on exit 2023-09-30 03:51:40 +00:00
apnadkarni 1f9a56de2f Fix [8259d74a64] - panic on exit 2023-09-30 03:23:45 +00:00
apnadkarni d7cff90675 Remove obsolete code 2023-09-30 02:58:33 +00:00
apnadkarni 99e1b20c80 Add test for crash 2023-09-29 17:17:11 +00:00
apnadkarni 197397e540 Merge 8.7 2023-09-29 17:05:27 +00:00
apnadkarni 5d2cc9aa80 Refactor zipfs finalization 2023-09-29 16:39:33 +00:00
dgp 864a596e06 merge trunk 2023-09-29 13:06:57 +00:00
dgp 00b977ec85 merge 8.7 2023-09-29 13:05:09 +00:00
dgp 175280f0b6 dup test names 2023-09-29 12:48:58 +00:00
dgp 91156a31bd merge trunk 2023-09-29 12:33:00 +00:00
apnadkarni db5cf8a937 Disable password based zipfs tests on MacOS 2023-09-29 11:56:45 +00:00
apnadkarni f6a9b261bc Disable password based zipfs tests on MacOS 2023-09-29 11:42:38 +00:00
apnadkarni c0f753dfae Start on zipfs finalization panic 2023-09-29 11:19:46 +00:00
jan.nijtmans 0ac2c2e659 Undo changes in tclVar.c: no longer necessary 2023-09-29 09:53:49 +00:00
jan.nijtmans cf3494dfd1 Merge 9.0. Make stderr channel -profile replace 2023-09-29 07:51:16 +00:00
apnadkarni e067642e2b Merge 8.7 - Fix [6d2ef441cc], [c315de9e44] - zipfs password bugs 2023-09-29 03:31:32 +00:00
apnadkarni 9dd80347e9 Fix [6d2ef441cc], [c315de9e44] - zipfs password bugs 2023-09-29 03:09:16 +00:00
apnadkarni f5219a0f83 Merge 8.7" 2023-09-29 02:41:46 +00:00
apnadkarni bd10908764 Minor edit 2023-09-29 02:40:08 +00:00
jan.nijtmans de336d2ab3 Merge 8.7 2023-09-28 18:17:58 +00:00
jan.nijtmans e2e75c4389 Fix [0df5906dd7]: Error-handling when stderr is in "strict" profile 2023-09-28 18:17:27 +00:00
jan.nijtmans 54252490a8 Handle ::tcl::Bgerror the same way 2023-09-28 18:15:37 +00:00
apnadkarni 9fb03c8b99 Progress on [6d2ef441cc] 2023-09-28 17:11:39 +00:00
apnadkarni 1cebc18c75 Proposed fix for [c315de9e44] 2023-09-28 16:26:53 +00:00
jan.nijtmans 01a22f1c57 Proposed fix for [0df5906dd7] 2023-09-28 15:23:51 +00:00
jan.nijtmans 85b8b933f9 Improve error-message, in case of encoding error in stderr channel 2023-09-28 15:01:56 +00:00
jan.nijtmans acef629172 Rebase to 9.0. Error-message improvement 2023-09-28 13:33:38 +00:00
jan.nijtmans a053effb29 Merge 8.7 2023-09-28 11:38:44 +00:00
apnadkarni ebdc55ca4d Simplify password checks. No need to persist result 2023-09-28 11:32:16 +00:00
apnadkarni 9375cacd65 Start on password related zipfs bugs 2023-09-28 11:02:02 +00:00
jan.nijtmans 41883cbddf test-case cleanup 2023-09-28 09:53:55 +00:00
jan.nijtmans c084d4f8b9 Rebase to 9.0 2023-09-28 08:22:08 +00:00
jan.nijtmans 986ad0c9be Merge 8.7 2023-09-28 07:32:38 +00:00
jan.nijtmans eb1ea6e992 Merge 8.6 2023-09-28 07:29:57 +00:00
jan.nijtmans a568c3a737 TIP #662: Un-deprecate Tcl_VarEval. Also remove some useless typecasts from documentation 2023-09-28 07:25:10 +00:00
jan.nijtmans 5e102e2169 Merge 9.0 2023-09-27 15:38:49 +00:00
jan.nijtmans 22ffe71522 TIP #673: Remove deprecated [trace] subcommands 2023-09-27 12:27:31 +00:00
apnadkarni 0b18383401 Merge 8.7 - Fix [00018ec7a0], [f91ee30d33], [23dd83ce7c] - zipfs r+, w+ modes, zero byte allocation 2023-09-27 11:44:06 +00:00
apnadkarni fcaf388135 Fix [00018ec7a0], [f91ee30d33], [23dd83ce7c] - zipfs r+, w+ modes, zero byte allocation 2023-09-27 11:11:53 +00:00
apnadkarni f2701a0cd9 Bug [00018ec7a0] - zipfs w+ not permitting read 2023-09-27 10:46:52 +00:00
jan.nijtmans bcccd87600 Merge 8.7 2023-09-27 10:30:02 +00:00
jan.nijtmans 5f54c3fb44 Merge 8.6 2023-09-27 10:23:57 +00:00
jan.nijtmans f3cb255841 Re-build libtommath for win64(-arm): some symbols were not exported 2023-09-27 10:19:56 +00:00
jan.nijtmans 524d6bb36e Eliminate use of old deprecated trace subcommands from testcases 2023-09-27 09:17:44 +00:00
jan.nijtmans d851fe1055 Merge 9.0 2023-09-27 07:46:31 +00:00
apnadkarni 55b3e19cb1 Add missing test file 2023-09-27 07:36:38 +00:00
apnadkarni 5cc6c263c9 Tests for bug [f91ee30d33] 2023-09-27 06:57:03 +00:00
apnadkarni 74a6deea15 Finish up [23dd83ce7c] tests and fixes. 2023-09-27 03:29:39 +00:00
apnadkarni e091f92c6b Fix [23dd83ce7c]. Still need to check other ckallocs for 0 length 2023-09-26 17:06:52 +00:00
jan.nijtmans 5a810662f7 Merge 8.7 2023-09-26 09:24:24 +00:00
jan.nijtmans 9164641058 Re-build libtommath v1.2.1 for Win64 and Win64-arm 2023-09-26 09:21:12 +00:00
apnadkarni afc5ad1a56 Merge 8.7 - Bug [d5d03207ca] - Tcl hang on zipfs writes greater than buffer size 2023-09-26 06:03:16 +00:00
apnadkarni b730c0e5a4 Bug [d5d03207ca] - Tcl hang on zipfs writes greater than buffer size 2023-09-26 05:22:22 +00:00
apnadkarni b19cf92301 Add tests 2023-09-26 05:03:28 +00:00
jan.nijtmans df59028204 Prevent TclGetByteArrayFromObj() et al being called directly through the stub table. See (hijacked) ticket [1468052732] 2023-09-25 20:01:16 +00:00
apnadkarni 3dce0b31fc Start on [d5d03207ca] 2023-09-25 19:45:15 +00:00
apnadkarni 07cfd779b5 Merge 8.7 2023-09-25 19:06:59 +00:00
apnadkarni d3ec5a1fb5 Fix (actually benign) gcc warning below about writing past array bound.
D:/src/tcltk/wip/tcl/generic/tclObj.c: In function 'ParseBoolean':
D:/src/tcltk/wip/tcl/generic/tclObj.c:2329:23: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 2329 |     lowerCase[length] = 0;
      |     ~~~~~~~~~~~~~~~~~~^~~
D:/src/tcltk/wip/tcl/generic/tclObj.c:2281:10: note: at offset [-2147483648, -1] into destination object 'lowerCas ' of size 6
 2281 |     char lowerCase[6];
      |          ^~~~~~~~~
2023-09-25 18:44:45 +00:00
apnadkarni 1a4b2a056c Fix fileSystem-1.38 to not assume all volumes are drives 2023-09-25 18:42:56 +00:00
jan.nijtmans 8357f5d53c Merge 8.7 2023-09-25 18:29:00 +00:00
jan.nijtmans 69efa801a2 Make last argument of Tcl_GetByteArrayFromObj() "Tcl_Size *" in stead of "int". Is exactly the same in 8.7, and reduces confusion in 9.0. See [1468052732] 2023-09-25 18:24:52 +00:00
apnadkarni 4606fe0e9a Merge 8.7 - zipfs file exists, stat 2023-09-25 17:50:03 +00:00
apnadkarni 31f30b5b76 Fix gcc warning. Add knownBug constraint to zipfs list (only showed in non-embedded config) 2023-09-25 17:28:41 +00:00
apnadkarni 95d360112f Bug [02acab5aea] - zipfs file exists and stat fixes 2023-09-25 16:23:59 +00:00
jan.nijtmans 201444431b Merge 8.7 2023-09-25 15:56:24 +00:00
jan.nijtmans 928f35eafa Re-build libtommath v1.2.1 for i686 2023-09-25 15:55:24 +00:00
apnadkarni cd98a34be7 Merge 8.7 2023-09-25 15:52:50 +00:00
apnadkarni 5a3fed5661 Fix file exist for zipfs 2023-09-25 15:37:09 +00:00
apnadkarni 6e58f120f7 Merge 8.7 - zipfs file attribute tests 2023-09-25 15:35:11 +00:00
apnadkarni ea11b48037 zipfs attribute tests 2023-09-25 15:17:48 +00:00
jan.nijtmans 80ff7a9129 Merge-mark 2023-09-25 13:53:11 +00:00
jan.nijtmans 434036ad66 some more int -> Tcl_Size 2023-09-25 13:51:50 +00:00
jan.nijtmans 5371c9273a Merge 8.7 2023-09-25 08:52:44 +00:00
jan.nijtmans 1c2359595d Move CHANNEL_*BUFFERED (internal) flags to higher bits: prevent any possibility for conflicts with public flags TCL_ENCODING_STOPONERROR|TCL_ENCODING_NO_TERMINATE|TCL_ENCODING_CHAR_LIMIT 2023-09-25 08:51:37 +00:00
apnadkarni ebdda7be1c Merge 8.7 2023-09-25 02:36:04 +00:00
apnadkarni 055686f717 Merge 8.7 - more zipfs tests 2023-09-24 16:46:52 +00:00
apnadkarni fa3868a2a6 More tests for zipfs 2023-09-24 16:35:34 +00:00
apnadkarni 21e9060174 Merge 8.7 - Bug [4645658689] - zipfs file truncation with open r+ 2023-09-23 13:41:04 +00:00
apnadkarni e7bd5573df Bug [4645658689] - zipfs file truncation with open r+ 2023-09-23 13:36:10 +00:00
jan.nijtmans 98c801cf7d Merge 9.0 2023-09-22 20:09:00 +00:00
jan.nijtmans 0ce165e8aa Merge 8.7 2023-09-22 15:02:50 +00:00
jan.nijtmans cee706d627 Fix test contraint "bbe7c6ff9e" 2023-09-22 15:01:00 +00:00
apnadkarni f70d844845 Merge 8.7 - Bug [0aaeb9c380] 2023-09-22 13:59:57 +00:00
apnadkarni 92041e6a8b Merge 8.6 - Bug [0aaeb9c380] 2023-09-22 13:58:11 +00:00
apnadkarni fffc4119be Bug [0aaeb9c380]. Fix spurious tcltest output on hyphenated constraints 2023-09-22 13:56:35 +00:00
apnadkarni 814c7d5faa Minor refactor for globbing zipfs 2023-09-22 02:51:58 +00:00
apnadkarni 44b4ef27b3 Fix file stat,exists for zipfs intermediate paths 2023-09-21 16:18:04 +00:00
jan.nijtmans 018b3bbd10 Merge 8.7 2023-09-21 12:21:33 +00:00
jan.nijtmans 00f7d2106a Merge 8.6 2023-09-21 12:20:51 +00:00
jan.nijtmans ed32508df0 Fix [dd54ac5323]: fileSystem.test: Set moreThanOneDrive constraint correctly 2023-09-21 12:19:24 +00:00
jan.nijtmans 9c291144f7 Merge 8.7 2023-09-21 11:15:59 +00:00
jan.nijtmans 8b49de7093 Merge 8.6 2023-09-21 11:12:23 +00:00
jan.nijtmans 8c63cf83ec Fix testcase for [00655c867e] (making it independent from timezone) 2023-09-21 11:10:34 +00:00
jan.nijtmans 5236d11a88 Fix [47902ec47a]: ThreadSafeLocalTime(): remove redundant localtime() call 2023-09-21 11:06:57 +00:00
jan.nijtmans 7a2afa0583 Fix [e368ba6683]: ThreadSafeLocalTime(): check if localtime_r() encountered error 2023-09-21 11:04:01 +00:00
apnadkarni 5aca1201ea Merge 8.7 - disable zipfs password tests for macos 2023-09-21 11:01:59 +00:00
apnadkarni 466db95da7 Disable zipfs password tests for macos. Unix, Windows pass. See [bbe7c6ff9e] 2023-09-21 10:59:57 +00:00
apnadkarni c2ceb41e19 Start on various bugs related to zipfs paths. 2023-09-21 08:51:19 +00:00
jan.nijtmans ebc42d0b80 Merge 8.7 2023-09-20 15:39:40 +00:00
jan.nijtmans d0a333d6b4 Eliminate utf16 test-constraint. Add some testcases (backported/adapted from 9.0) 2023-09-20 15:27:33 +00:00
dgp 682c421c38 merge trunk 2023-09-20 12:25:42 +00:00
jan.nijtmans fd6376959f Merge-mark 2023-09-20 12:24:44 +00:00
jan.nijtmans 99e60e2475 Handle TCL_TRACE_OLD_STYLE being deprecated 2023-09-20 12:11:28 +00:00
apnadkarni dd10ae5695 Merge 8.7 - constrain zipfs tests for platform-specific builds 2023-09-20 11:01:29 +00:00
apnadkarni 5ae7b78dde Constrain tests to account for difference between Unix, MingW and MacOs build configuration for --disable-shared 2023-09-20 10:59:09 +00:00
jan.nijtmans 35e684f318 Merge 8.7 2023-09-20 08:34:26 +00:00
jan.nijtmans 98f9c60d3a Eliminate "tip389" constraint. Mark 3 test-cases knownBug [e262613233] 2023-09-20 08:17:01 +00:00
apnadkarni e6cc6f599a Fix glob test - -nocomplain is default in 9.0 2023-09-20 07:43:48 +00:00
jan.nijtmans 8d52e77fe6 Merge 8.7 2023-09-20 07:28:26 +00:00
jan.nijtmans 80a5264797 eliminate use of "utf32" constraint: no longer necessary 2023-09-20 07:25:08 +00:00
jan.nijtmans 98c1128f07 Fix compilation with CFLAGS=-DTCL_NO_DEPRECATED 2023-09-20 07:23:57 +00:00
apnadkarni c1d507af30 Bug [a288e2003b] - file normalize broken for zipfs. 2023-09-20 06:32:32 +00:00
jan.nijtmans b60fcd164c 2 more "string equal" testcases 2023-09-19 19:57:05 +00:00
apnadkarni 2d57bb735f Merge 8.7 - Bugs [14db54d81e], [6183f535c89]. Glob and find on zipfs root 2023-09-19 12:00:10 +00:00
apnadkarni ef9ea15d10 Bugs [14db54d81e], [6183f535c89]. Glob and find on zipfs root 2023-09-19 11:41:26 +00:00
jan.nijtmans b442be5c57 Merge 8.7 2023-09-19 07:34:06 +00:00
jan.nijtmans 990d47f74d Fix gcc warning 2023-09-19 07:09:07 +00:00
apnadkarni dfaa1a63ba Merge 8.7 - Bug [4c686f1f0a] - zipfs mount on / 2023-09-19 06:08:49 +00:00
apnadkarni b3a28b3f14 Bug [4c686f1f0a] - zipfs mount on / 2023-09-19 05:41:23 +00:00
apnadkarni c012c43f18 Merge 8.7 - Bug [d056ee6d30] - zipfs list returns invalid paths 2023-09-18 17:05:02 +00:00
apnadkarni 8966a8fda6 Bug [d056ee6d30] - zipfs list returns invalid paths 2023-09-18 16:59:09 +00:00
jan.nijtmans cbf39c96d9 Merge 8.7 2023-09-18 16:00:48 +00:00
jan.nijtmans a55cf1edad Allow larger values for "binary encode base64 -maxlen". Add some more testcases 2023-09-18 15:50:23 +00:00
apnadkarni 1e8ecbdd53 Directory depth calculation assumed zipfs root at /, not //zipfs:/ 2023-09-18 15:47:06 +00:00
dgp 7678739fb9 merge trunk 2023-09-18 15:39:40 +00:00
dgp c6b286e4b7 Stop new [memusage] utility command from polluting the set of open channels 2023-09-18 15:30:10 +00:00
apnadkarni 27e313399c Create new branch named "bug-d056ee6d30" 2023-09-18 14:56:41 +00:00
jan.nijtmans 2f6417720d Merge 8.7. Add testcase 2023-09-18 14:45:00 +00:00
dgp faa2dd58c7 silence compiler warning about uninitialized variable 2023-09-18 14:37:33 +00:00
jan.nijtmans b52d1ad00a int -> Tcl_Size (where appropriate). Make TclStringCmpOpts() static 2023-09-18 14:11:05 +00:00
jan.nijtmans adac6b8ea3 Merge-mark 2023-09-18 11:12:10 +00:00
jan.nijtmans 69ca53fb44 int -> Tcl_Size (where appropriate) 2023-09-18 10:27:48 +00:00
jan.nijtmans 628b867c98 Merge 8.7 2023-09-18 08:04:10 +00:00
jan.nijtmans b363db3cde Fix [3d3124d01d]: failures with -ftrapv compiler option 2023-09-18 06:51:31 +00:00
jan.nijtmans f167b152ea Backport [891a74b941]: format %#d not consistent with other radix prefixes or TIP 472 description 2023-09-18 06:30:44 +00:00
apnadkarni 511f64506d Merge 8.7 - Remove test constraint bug-b3c7429255 2023-09-17 15:18:31 +00:00
apnadkarni b70d75600b Remove test constraint bug-b3c7429255 2023-09-17 15:16:30 +00:00
apnadkarni f2af5f4eb2 Bug [f5e36eb588] - uncompiled lassign memory usage for lseq 2023-09-17 09:56:12 +00:00
apnadkarni b40cbe1d94 Refactor to eliminate list dup as no longer necessary 2023-09-17 08:24:52 +00:00
apnadkarni 3efac837b7 Add test for lassign/lseq memory 2023-09-17 06:28:58 +00:00
apnadkarni f17ea65e32 Avoid list shimmering with uncompiled lassign on lseq 2023-09-17 06:07:58 +00:00
apnadkarni 15e104b2e3 Merge 8.7 - Fix [3f9f494cc1] zipfs timezone tests. 2023-09-17 04:24:06 +00:00
apnadkarni 5f091288cc Fix [3f9f494cc1] zipfs timezone tests. 2023-09-17 04:01:46 +00:00
apnadkarni cccc703d4d Use local time in tests for zip timestamps 2023-09-17 03:38:13 +00:00
griffin 77f9161a6f Fix bug [c29b92ec2bbb] - Tcl_IncrRefCount() should return (void) 2023-09-16 22:00:55 +00:00
jan.nijtmans 0c82132973 merge-mark 2023-09-16 19:06:07 +00:00
jan.nijtmans b075363130 cleanup format.test 2023-09-16 17:22:45 +00:00
apnadkarni ebca342ede Merge 8.7 - Bug [b6f7cee65c] - nmake not testing zip based tcl library 2023-09-16 15:42:15 +00:00
apnadkarni e398c5637e Bug [b6f7cee65c] - nmake not testing zip based tcl library 2023-09-16 15:37:32 +00:00
apnadkarni abfe0ca217 Merge 8.7 - Bug [2696dfe3f5] - raise exception on CRC errors 2023-09-16 15:27:10 +00:00
apnadkarni cf144fac50 Bug [2696dfe3f5] - raise exception on CRC errors 2023-09-16 15:03:18 +00:00
apnadkarni 677131a1f4 Clean up buffers on CRC failure 2023-09-16 14:51:30 +00:00
apnadkarni 0fac9170c8 Add test file for CRC 2023-09-16 14:38:57 +00:00
apnadkarni 8c63484aed Merge 2023-09-16 13:03:13 +00:00
apnadkarni 01c86a919b Merge 8.7 - Bug [943258f361] - valgrind - cmdInfo test 2023-09-16 10:59:26 +00:00
apnadkarni b761adbd41 Bug [943258f361] - valgrind - cmdInfo test uninitialized memory access 2023-09-16 10:52:34 +00:00
apnadkarni e142369b02 Merge 8.7. Bug [d7849f7721]. zipfs memory leak. 2023-09-16 08:29:56 +00:00
apnadkarni b9bffd1ac7 Bug [d7849f7721]. zipfs memory leak. 2023-09-16 07:48:11 +00:00
apnadkarni 473715fd70 Mainly comments, more minor refactoring 2023-09-16 06:41:25 +00:00
apnadkarni d1cc001d30 Minor refactoring 2023-09-16 06:03:46 +00:00
apnadkarni 06248e1027 Fix ZipChannel.ubuf memory management 2023-09-16 05:02:51 +00:00
apnadkarni 26aaa27f34 Partial fix for leak 2023-09-16 02:46:17 +00:00
griffin c2687b75a1 Fix bug [891a74b941] - format %#d not consistent with other radix prefixes 2023-09-16 00:44:16 +00:00
dgp 5678204f69 close fork 2023-09-15 17:09:37 +00:00
apnadkarni f4e7384342 Merge 8.7 - Disable two tests. Works on my Windows and Ubuntu but apparently not everywhere - [3f9f494cc1] 2023-09-15 17:07:19 +00:00
dgp 1e15c0c2a2 silence compiler warning 2023-09-15 17:07:18 +00:00
apnadkarni 8420222eb4 Disable two tests. Works on my Windows and Ubuntu but apparently not everywhere - [3f9f494cc1] 2023-09-15 17:05:21 +00:00
dgp 69841af472 merge 8.7 2023-09-15 16:59:29 +00:00
apnadkarni afd38a94a3 Add false positive tests for CRC checking 2023-09-15 16:39:57 +00:00
dgp 2766b53d26 Test hygiene for supporting -singleproc 1 and -debug 1 2023-09-15 16:05:07 +00:00
apnadkarni c4b43f3f19 CRC validation 2023-09-15 15:37:27 +00:00
jan.nijtmans 09cf08b568 3 more places where -wtrapv errors are triggered running the test-suite 2023-09-15 10:32:18 +00:00
apnadkarni e0eb135e0f Merge 8.7 - Expand zipfs tests. Fix [9a80630571], [6ed3447a7e], [01d8f30342] and manpages. 2023-09-15 08:38:10 +00:00
apnadkarni 41543bb582 Expand zipfs tests. Fix [9a80630571], [6ed3447a7e], [01d8f30342] and manpages. 2023-09-15 08:00:49 +00:00
jan.nijtmans e4ae82c683 3 places where TCLFSENCODING is not appropricate (use system-encoding, not utf-8, on Windows) 2023-09-15 06:53:44 +00:00
jan.nijtmans de032b40ca Merge 8.7 2023-09-15 06:34:43 +00:00
jan.nijtmans 7539841ffd Merge 8.6 2023-09-15 06:27:39 +00:00
jan.nijtmans 39c9ae29d9 [3d3124d01d]: Assure we detect any -ftrapv failures in GitHub actions 2023-09-15 06:13:08 +00:00
apnadkarni 5328764576 zipfs password tests 2023-09-15 06:05:01 +00:00
jan.nijtmans f59a26a7c8 Fix [00655c867e]: ClockGetdatefieldsObjCmd(): avoid signed integer overflow and platform-dependent behavior 2023-09-14 21:17:21 +00:00
apnadkarni 748f1c39e5 Fix more arg count tests. Adapt stat dict for non-windows 2023-09-14 16:30:02 +00:00
apnadkarni 16905581a3 More tests and fix one more case triggering bug [01d8f30342] 2023-09-14 14:52:06 +00:00
apnadkarni e9833540e4 Added test files for zipfs 2023-09-14 14:49:39 +00:00
apnadkarni e28353f4c3 Bug [01d8f30342]. zipfs canonical produces garbage. 2023-09-13 16:45:19 +00:00
apnadkarni e3d4f2f6e7 Merge 8.7 2023-09-13 16:18:30 +00:00
apnadkarni 3d8ff23d67 Couple of more special cases for zipfs mount 2023-09-13 15:33:24 +00:00
jan.nijtmans 1cee49ead8 Merge-mark 2023-09-13 15:23:47 +00:00
jan.nijtmans 715e8c335c More type-casts (c++-compatibility) 2023-09-13 15:19:16 +00:00
jan.nijtmans ffbdd37f86 Merge-mark 2023-09-13 13:47:02 +00:00
jan.nijtmans 225ba3d41d Fix [43b0656605]: MS Windows: files with emojis are found by glob but not recognized by file exists or open 2023-09-13 12:38:49 +00:00
jan.nijtmans c680b51271 Fix [a1f11d96b8]: VC6 compilation error of core-8-6-branch: error C2065: 'int16_t' : undeclared identifier 2023-09-13 12:35:23 +00:00
jan.nijtmans 99bb3c0f9f Don't use int16_t, pre-C99 2023-09-13 12:31:21 +00:00
jan.nijtmans 433d5616f8 More CompileProc/Tcl_ObjCmdProc usage 2023-09-13 12:27:15 +00:00
jan.nijtmans 743fbbaa69 Remove unneeded internal stub-entries (now that TIP #666 is accepted) 2023-09-13 12:24:02 +00:00
jan.nijtmans 56f7295088 Fix [43b0656605]: MS Windows: files with emojis are found by glob but not recognized by file exists or open 2023-09-13 11:00:46 +00:00
jan.nijtmans fd4b42019a Rebase to 9.0 2023-09-13 09:18:48 +00:00
jan.nijtmans 82d1373a50 Merge 9.0 2023-09-13 09:10:09 +00:00
jan.nijtmans c11b9c40be Merge 9.0 2023-09-13 08:52:54 +00:00
apnadkarni 8200cc5892 Add !zipfslib constraint for tests that should only run without an attached Tcl lib vfs 2023-09-13 06:42:54 +00:00
apnadkarni 114fb3a941 Bug [9a80630571] - zipfs directory consistency checks 2023-09-13 06:20:12 +00:00
dgp c5dbe2dfbe TIP 624 followup. Now TclMakeSafe can be a static routine. 2023-09-12 19:38:38 +00:00
dgp 6e92e225b6 merge 8.7 2023-09-12 19:22:12 +00:00
dgp e8b480af28 Make use of the CompileProc typedef. 2023-09-12 19:10:59 +00:00
dgp 42160ad9b3 merge 8.6 2023-09-12 18:32:12 +00:00
dgp 6d1fc5cfd9 Internal routine TclpMatchFiles() was superseded when virtual filesystems
were introduced in Tcl 8.4, but the declaration has lingered on.  Remove it.
2023-09-12 17:16:10 +00:00
dgp 7e9096e2c3 In 2020, internal routine TclParseHex() was converted to a static routine
but the declaration was not removed.  Remove it now.
2023-09-12 16:57:27 +00:00
dgp edf74f0790 Use a static declaration when possible and when it matches the name. 2023-09-12 16:36:27 +00:00
dgp 7c80a5acba A housekeeping commit in 2019 added a declaration for TclIsDigitProc().
There is no implementation or use.  Remove it.
2023-09-12 16:22:49 +00:00
dgp b7bb526d8b The original implementation of NRE in 2008 included an internal routine
TclNREvalCmd().  It was eliminated soon after, but the declaration has
lingered on.  Removing it now.
2023-09-12 15:48:21 +00:00
apnadkarni 7872e34ec6 Fix zipfs root arg count checks 2023-09-12 14:57:25 +00:00
jan.nijtmans 4e52068463 Rebase to 9.0 2023-09-12 13:59:43 +00:00
jan.nijtmans 1c2fa3d175 Merge-mark 2023-09-12 12:26:56 +00:00
jan.nijtmans cccf730c56 Fix test-case failure with --enable-symbols=mem. Slipped in with TIP #666 implementation 2023-09-12 11:42:13 +00:00
jan.nijtmans 3b3d524d3a Merge 8.7 2023-09-12 10:11:55 +00:00
jan.nijtmans b9bb8fd5b2 TIP #665: Remove support for internal utf-16 for Tcl 8.7 (and 9.0) 2023-09-12 07:45:50 +00:00
jan.nijtmans b6205f2109 No longer support "OPTS=utf16" in makefile.vc/rules.vc 2023-09-12 06:58:17 +00:00
apnadkarni 587c1e337e More tests and some manpage corrections 2023-09-11 16:49:32 +00:00
jan.nijtmans f03ee8f981 Remaining part of TIP #666 implementation (first part already done [cd426d20a9327f49|here]) 2023-09-11 14:57:37 +00:00
jan.nijtmans d01b2d3ace TIP #666 implementation: Change ptrdiff_t → Tcl_Size in Tcl 8.7 (and 9.0) 2023-09-11 14:43:41 +00:00
dgp 3d42a051d4 merge trunk 2023-09-11 13:28:27 +00:00
dkf e5934571ed TIP 677 start. Define new flag for variables 2023-09-11 13:15:20 +00:00
apnadkarni d158e3119f Oops. Inadvertent check-in. 2023-09-10 09:58:36 +00:00
apnadkarni 20c115cbca Merge 8.7 (change in order of mount args) 2023-09-10 09:49:50 +00:00
apnadkarni 19e941f190 Merge 8.7 - Bug [78cd4f9ad3] - regression in zipfs mount 2023-09-10 08:32:21 +00:00
apnadkarni 07a1136da5 Bug [78cd4f9ad3] - regression in zipfs mount 2023-09-10 08:15:43 +00:00
apnadkarni 2b4f6b9dd0 Improve test coverage for zipfs mount/unmount 2023-09-09 18:11:56 +00:00
apnadkarni 8934db4c07 Bug [6ed3447a7e]. Fix crash. Add length checks. 2023-09-09 07:51:42 +00:00
dgp e7c9773835 merge trunk 2023-09-08 16:51:38 +00:00
jan.nijtmans 2f830fa023 Merge 8.7 2023-09-08 14:38:15 +00:00
jan.nijtmans 3cbd9a0054 Merge 8.6 2023-09-08 14:25:07 +00:00
jan.nijtmans 615cc9fcfc Unicode 15.1 (final) 2023-09-08 14:21:24 +00:00
jan.nijtmans b0ed3a68e7 Adapt data tables to Unicode 15.1 (final) 2023-09-08 13:50:58 +00:00
jan.nijtmans ed5be2ea52 Merge 8.7 2023-09-08 11:50:59 +00:00
jan.nijtmans e08dd23e24 Testcase improvements 2023-09-08 11:46:16 +00:00
jan.nijtmans 67943d16d9 Incorrect use of $mountpoint variable 2023-09-08 11:26:50 +00:00
jan.nijtmans dfde278d7b Merge 8.7 2023-09-08 10:49:58 +00:00
jan.nijtmans c43384122e [93eb73784a] follow-up: It looks like the "zipfs exists" change is necessary to make tcl_findLibrary work at all. Adapt test-cases accordingly 2023-09-08 10:45:49 +00:00
jan.nijtmans 4e20673897 Merge 8.7 2023-09-08 08:48:45 +00:00
jan.nijtmans f9350ae5e0 Merge 8.7 2023-09-08 08:42:38 +00:00
jan.nijtmans 1245809b52 Fix [93eb73784a]: zipfs interaction with tcl_findLibrary causes slow loading 2023-09-08 08:16:59 +00:00
jan.nijtmans e39ec8cfc6 More patches from juliannoble2. Thanks! 2023-09-07 14:53:19 +00:00
jan.nijtmans 5a67846a1b Exchange TclZipfs_MountBuffer/"zipfs mount_data" arguments as well 2023-09-07 14:34:36 +00:00
jan.nijtmans 7981bfb58d Merge 8.7. Exchange "zipfs mount"/TclZipfs_Mount arguments: archive <-> mountpoint 2023-09-07 13:40:07 +00:00
jan.nijtmans 4f8d20cba2 Merge 8.7 2023-09-07 11:09:50 +00:00
jan.nijtmans 4f36ce71dd Fix examples (which don't output ".utf16" any more) 2023-09-07 11:02:24 +00:00
jan.nijtmans db234eeee9 Experiment: What if we changed "//zipfs:/" to "/zipfs:/", which doesn't look like an UNC path any more? 2023-09-07 10:46:30 +00:00
jan.nijtmans b6bea12506 Fix zipfs-related documentation 2023-09-07 10:36:02 +00:00
dgp 3f3dfa54cb merge trunk 2023-09-06 20:35:27 +00:00
dgp 75b3b57a46 merge trunk 2023-09-06 19:29:38 +00:00
dgp bec1da2042 merge 8.7 2023-09-06 19:28:17 +00:00
dgp 71ff6dec15 [fc87e3bddd] Complete repair of flawed test. 2023-09-06 18:40:54 +00:00
dgp 1ff39cda38 Same issue in zlib.test 2023-09-06 18:33:26 +00:00
dgp 470946f7b9 Be sure to define the "deprecated" constraint in order to use it. 2023-09-06 18:29:51 +00:00
jan.nijtmans d98ac60ff6 Proposed fix for [fc87e3bddd]: get-3.4.1 fails in -singleproc testing 2023-09-06 18:28:40 +00:00
apnadkarni c18d54b820 Create new branch named "apn-zipfs-tests" 2023-09-06 16:44:58 +00:00
dgp a9d305a839 merge 8.7 2023-09-06 16:08:31 +00:00
dgp c9fbc215c4 silence compiler warning 2023-09-06 13:31:18 +00:00
jan.nijtmans 5578399a47 Merge 8.7 2023-09-06 10:14:30 +00:00
jan.nijtmans 097cd7b853 Merge 8.7 2023-09-06 09:52:03 +00:00
jan.nijtmans 8a7a42b37c Fix [d3465c9188]: Update install-sh to version "2020-11-14.01". This time without tweak 2023-09-06 09:31:01 +00:00
jan.nijtmans 4b86f4f418 [d3465c9188] restore install-sh to unmodified official version 2023-09-05 15:52:41 +00:00
jan.nijtmans fec3043790 Merge 8.7 2023-09-05 14:37:17 +00:00
jan.nijtmans 5afcff8636 Merge 8.6 2023-09-05 14:27:36 +00:00
jan.nijtmans efb3134805 Fix [d3465c9188]: Update install-sh to version "2020-11-14.01; # UTC"
tweak: our own -S modification renamed to -R, resolving a conflict
2023-09-05 13:37:46 +00:00
jan.nijtmans 418fc36ff6 Merge 8.7 2023-09-05 10:09:47 +00:00
jan.nijtmans 075a31ab24 Merge 8.6 2023-09-05 08:37:49 +00:00
jan.nijtmans a1f0090727 Fix [https://core.tcl-lang.org/tclvfs/tktview/60cacfbcb9|60cacfbcb9]: Segmentation Fault at interpreter exit when tclvfs loaded 2023-09-05 08:30:05 +00:00
apnadkarni f985673885 Merge 8.7 - Fix [b5ac3e3786] - Tcl_GetUniChar oob read 2023-09-05 07:02:39 +00:00
apnadkarni 1de4b18af9 Merge 8.6 - Fix [b5ac3e3786] - Tcl_GetUniChar oob read 2023-09-05 06:42:31 +00:00
apnadkarni 381c827ae8 Fix [b5ac3e3786] - Tcl_GetUniChar oob read 2023-09-05 06:10:23 +00:00
apnadkarni 22f59c102a Fix [b5ac3e3786] - Tcl_GetUniChar oob read 2023-09-05 05:48:57 +00:00
apnadkarni 38d04b648d Tcl_GetUniChar out of bounds read - tests 2023-09-05 05:44:41 +00:00
jan.nijtmans bd4ef20aa6 Merge 8.7 2023-09-04 20:51:06 +00:00
jan.nijtmans e1edaf4715 Merge 8.6 2023-09-04 20:42:54 +00:00
jan.nijtmans 11de34bf3a Update libtommath to version 1.2.1 2023-09-04 20:25:31 +00:00
jan.nijtmans 90123ae372 Merge libtommath 2023-09-04 20:18:34 +00:00
jan.nijtmans 587746fd34 libtommath -> version 1.2.1 2023-09-04 20:14:58 +00:00
jan.nijtmans dc50efa15e actions/checkout @v3 -> @v4 2023-09-04 19:58:22 +00:00
griffin 7e7bf74416 backport numeric white-space bug fix from 9.0 2023-09-02 22:00:37 +00:00
griffin b7af0a69ae fix bug cd61f085da "tcl terminates silently with invalid expr underscore syntax and radix prefix" 2023-09-01 20:53:54 +00:00
jan.nijtmans badb21a141 Always use UCHAR() with isxdigit(). doc fix 2023-09-01 17:03:36 +00:00
griffin 8a8190bc2d Fix bug with octal. Add floating point example to doc. 2023-09-01 15:17:41 +00:00
griffin ce4872f00b Use system isxdigit. 2023-09-01 02:26:56 +00:00
griffin 93bc431bbf merge trunk 2023-09-01 02:06:48 +00:00
griffin cd0ce23389 Rewrite how numeric whitespace is processed in TclParseNumber. Add more number test cases. 2023-09-01 01:15:50 +00:00
jan.nijtmans e278dd4f15 Rebase to 8.7 2023-08-31 14:46:42 +00:00
jan.nijtmans a1319ec00a Rebase to 8.7 2023-08-31 14:45:01 +00:00
jan.nijtmans 58a2c303a9 Rebase to 8.7 2023-08-31 13:47:09 +00:00
jan.nijtmans 4c1261700f Merge 8.7 2023-08-31 13:14:34 +00:00
jan.nijtmans f0ea214c57 Backport some test improvements from 9.0 2023-08-31 11:17:23 +00:00
jan.nijtmans 03dabdc86e Make Tcl_GetBytesFromObj signature match documentation (not really a change since Tcl_Size == int). Update documentation 2023-08-31 08:06:14 +00:00
jan.nijtmans 5db8ac0ea0 Make Tcl_NRCallObjProc2 definition match documentation (ptrdiff_t -> Tcl_Size, which is - actually - just the same) 2023-08-31 07:23:14 +00:00
griffin 30639b0b54 fix several issues with numeric whitespace by limiting where '_' is allowed. 2023-08-30 22:06:57 +00:00
dgp b8d9c4c39b merge trunk 2023-08-30 15:25:10 +00:00
jan.nijtmans 833487508b Rebase to 8.7 2023-08-30 14:42:37 +00:00
jan.nijtmans 060c1a48b9 Rebase to 8.7 2023-08-30 14:38:57 +00:00
jan.nijtmans a941263ec7 Rebase to 9.0 2023-08-30 13:45:15 +00:00
jan.nijtmans 5591ffe45b Merge 9.0 2023-08-30 13:34:17 +00:00
jan.nijtmans f0449542a5 Merge 8.7 2023-08-30 10:48:33 +00:00
jan.nijtmans 209b8d0bde Merge 8.6 2023-08-30 10:37:44 +00:00
jan.nijtmans c4e37ac1df Convert compat/zlib/contrib/dotzlib/DotZLib/*.cs to proper UTF-8 2023-08-30 09:57:52 +00:00
jan.nijtmans 6a0247d31c Slightly better binary compatibility between 8.7 and 9.0 on win64 and cygwin: for those platforms keep "usec" in Tcl_Time 32-bit. 2023-08-29 19:35:37 +00:00
jan.nijtmans bdcf4cf310 Merge 8.7 2023-08-29 13:39:55 +00:00
jan.nijtmans b27ac46c3d Merge 8.6 2023-08-29 13:37:18 +00:00
jan.nijtmans 74bc2174ad Update zlib to version 1.3 2023-08-29 12:38:12 +00:00
griffin 97d2ffe28c fix for invalid numeric whitespace syntax bug. 2023-08-29 01:51:53 +00:00
dgp 0e73e9fd0e merge trunk 2023-08-28 16:06:01 +00:00
jan.nijtmans f04f50447f Upgrade to zlib-1.3.0 2023-08-28 14:28:18 +00:00
jan.nijtmans ca6720d53a Use sizeof(Tcl_Size) in stead of TCL_SIZE_MAX 2023-08-28 07:59:55 +00:00
jan.nijtmans e73ab82189 Unbreak Tcl9 build (TCL_SIZE_MAX usage) 2023-08-27 20:26:27 +00:00
jan.nijtmans 6b42d3e7f7 Temporary mark interp-34.11 test-case a knownBug. Fix ongoing in separate branch 2023-08-27 17:15:15 +00:00
jan.nijtmans 061c659c7d Merge 8.7 2023-08-27 16:51:00 +00:00
jan.nijtmans 810a85363a Fix [64165953a0]: Compilation error of C extensions due to TCL_SIZE_MAX definition 2023-08-27 16:46:10 +00:00
jan.nijtmans d8b2b6cf7a Fix suggestion in [86dd172271], updating Tcl_Time.sec to "long long". This is a binary incompatibility for 32-bit platforms! 2023-08-26 20:37:28 +00:00
jan.nijtmans f3cc49e1ef Merge 8.7 2023-08-25 20:57:58 +00:00
jan.nijtmans 4fc5e6946c Fix [920e393634]: expr {7244019458077122840 << 1}. Some more long -> Tcl_WideInt fixes in comments 2023-08-25 20:34:32 +00:00
jan.nijtmans a951fd16e7 Make "shift" an "int" variable; since it's range is 0 < shift < INT_MAX 2023-08-25 17:22:22 +00:00
jan.nijtmans 301b5ed8d9 Merge 8.7 2023-08-25 15:30:58 +00:00
jan.nijtmans 3c97d09460 [84a5355235]: two more cases of sizeof(long) -> sizeof(Tcl_WideInt), since that's the unit we are doing calculations with 2023-08-25 15:18:44 +00:00
jan.nijtmans b5fb869a2d Merge "revert-dup-pure" branch: get rid of TclDuplicatePureObj() 2023-08-25 15:14:18 +00:00
dgp 7407d23f26 merge trunk 2023-08-25 14:47:19 +00:00
dgp 65f03434ca Merge 8.7. Time to merge this branch? 2023-08-25 14:38:45 +00:00
jan.nijtmans 1de877775d Tweak: keep "long usec" for 32-bit windows, as other 32-bit systems.
Fix documentation. Tcl_GetTime() 'hack' for 64-bit windows is no longer necessary now
2023-08-24 17:44:03 +00:00
jan.nijtmans 4ca61724c5 Update Tcl_Time for 32-bit systems and win64, being able to handle time > 2038. Suggested in in ticket [86dd172271] 2023-08-24 17:33:01 +00:00
griffin 4a4195dde8 Replace test data with something more acceptable. 2023-08-24 01:45:05 +00:00
jan.nijtmans 0290bc2e58 Merge 8.7 2023-08-23 20:18:27 +00:00
jan.nijtmans 4408536018 Merge 8.6 2023-08-23 16:56:24 +00:00
jan.nijtmans 813e29b286 Fix [84a5355235] (not visible in 8.6, but meant to be forwared to 8.7) 2023-08-23 16:13:58 +00:00
jan.nijtmans ea37e7d256 Backport [bae0d30c7f5047a4]. Don't suggest that TCL_UTF_MAX=1 might work any more. See: [457523] 2023-08-23 15:31:20 +00:00
griffin 24ad01e41d Thanks for cherrypicking this change for 8.7.
'Someone versed in the ArithSeries work' has fixed the regressions.
The ArithSeries in 8.7 is a precursor one-off of Abstact Lists.
2023-08-22 19:53:59 +00:00
dgp 1ec6598ede The experiment deployment of TclDuplicatePureObj() has been reverted from
the trunk.  This branch attempts to prepare a reversion for the
core-8-branch also, via a cherrypick and resolution of conflicts.

Starting an experiment in one new release to reject it
in the next is at best odd.  Also, valgrind test runs of core-8-branch
show memory leaks with TclDuplicatePureObj() on the stack trace.  This
checkin shows a clean valgrind run.

There are three test failures on this checkin, which I hope someone versed
in the ArithSeries work can resolve.  They are the tests:

lseq-3.14
lseq-4.19
lseq-bug-54329e39c7

merge bug-bc7ddc7944 (revert use of TclDuplicatePureObj)
2023-08-21 18:07:48 +00:00
dgp 363120fb16 merge trunk 2023-08-21 15:17:42 +00:00
bch 264cdba5ac Tcl_Read(), Tcl_ReadChars() return Tcl_Size 2023-08-21 03:00:12 +00:00
apnadkarni bc67254346 Back out [2a01c62b1a55a] - causes tcllib failures. 2023-08-20 13:26:21 +00:00
dgp 3960b1ade5 merge trunk 2023-08-18 14:52:48 +00:00
apnadkarni df59030308 Merge 8.7 - Fix UtfToUtf16Proc 2023-08-18 07:08:55 +00:00
apnadkarni 8f08010332 Fix UtfToUtf16Proc and UtfToUCS2Proc to not assume sizeof(Tcl_UniChar) is size of UTF16 / UCS2 code unit" 2023-08-18 06:57:08 +00:00
griffin cbaacc8765 Fix bug: Performance regression in 9.0 accessing dicts as lists [f4c01e42a7] 2023-08-17 21:03:54 +00:00
griffin 8b2e668afd Remove ineffective index operation. Shimmering is already optimal. 2023-08-17 17:37:58 +00:00
griffin ac90f7932a Working index operation, but terrible performance. (not surprising) 2023-08-17 17:16:40 +00:00
griffin 90743534a8 Fix llength function for dict types. 2023-08-16 21:36:18 +00:00
griffin c3237c427f merge bug-bc7ddc7944 (revert use of TclDuplicatePureObj) 2023-08-14 15:46:21 +00:00
dgp f470780854 merge trunk 2023-08-14 13:58:24 +00:00
apnadkarni d8efa035d1 Bug [457523]. Trivial comment edit just to close the bug 2023-08-14 12:55:16 +00:00
griffin 08461f8e8f merge trunk 2023-08-14 05:07:19 +00:00
apnadkarni ed918cb027 Bug [bc076f4f0e]. Fix large indexing broken by commit [0b05b5c750df]. Also preserves Tk bug fix [a9929f112a] 2023-08-14 03:42:58 +00:00
apnadkarni 37289addc2 Fix up tests for modified Tcl_GetIntForIndex semantics 2023-08-13 13:37:23 +00:00
apnadkarni e2d5a2cd60 Merge in fix for end+1 indices. 2023-08-13 11:56:12 +00:00
apnadkarni 5860a89267 Fix for Tk [a9929f112a] 2023-08-13 10:35:29 +00:00
apnadkarni aa0e1c2bd9 Revert [0b05b5c750df] that broke bigdata tests and lseq-1.13 2023-08-13 06:22:28 +00:00
griffin 558680d5e5 merge trunk 2023-08-13 04:29:59 +00:00
griffin baa91f87ba Rename Tcl_BumpObj() to Tcl_BounceRefCount().
After the presentation on Abstract Lists at the 2023 OpenACS/Tcl
Conference, there was a strong opinion that this function should be
renamed. The results of an informal poll had a tie between
Tcl_DoneWithObj() and Tcl_BounceRefCount(). Having seen a reference to
"Bounce" in a research paper on Ref Counting, I chose to use
Tcl_BounceRefCount().
2023-08-12 23:14:43 +00:00
griffin c29c4e023f More replacements of DuplicateObj with ListObjCopy. 2023-08-12 17:56:23 +00:00
griffin 997617cd7d Replace more DuplicateObj with ListObjCopy. 2023-08-12 04:07:57 +00:00
griffin 0a0ba9e309 Replace DuplicateObj with ListObjCopy where appropriate. 2023-08-11 17:55:27 +00:00
dgp 073b0f729a Tcl_DuplicateObj() does not need DECACHE/CACHE protections. 2023-08-11 15:09:31 +00:00
griffin bf8b4d6d18 Revert more bits. 2023-08-10 21:12:05 +00:00
griffin 45a4664dc2 Revert DupolicatePureObj back to DuplicateObj. 2023-08-10 17:48:37 +00:00
dgp 8efa0ab4a8 merge trunk 2023-08-10 16:32:40 +00:00
dgp 946847b4b9 silence compiler warning 2023-08-10 14:09:55 +00:00
griffin 5b6a975221 Proposed fix for bug-bc7ddc7944 2023-08-10 01:47:42 +00:00
griffin 96b27040f7 Fix uninitialized variable. 2023-08-09 22:55:25 +00:00
griffin 7dc2ed805f Corrections and additions for ObjectType Abstract List descriptions. Part of bug [30e4e9102f] 2023-08-08 22:55:50 +00:00
griffin 0d106bd729 Fix bug [30e4e9102f] - Abstract List ListIndex should return NULL when index out of range. 2023-08-08 17:10:20 +00:00
griffin 4eef7b0ff0 Implement in,ni operator for abstract lists 2023-08-08 15:21:47 +00:00
apnadkarni 59462a578f Bug [f5c01e42a7]. Disable DictAsListIndex for the time being. 2023-08-08 06:02:32 +00:00
jan.nijtmans fa96cac29f Merge 8.7 2023-08-04 19:06:56 +00:00
dgp 67a433cc8e quiet test noise 2023-08-04 14:06:34 +00:00
jan.nijtmans 4b135ba7bf Rebase to 9.0 2023-08-04 07:48:47 +00:00
dgp 9bb0103ec4 merge trunk 2023-08-03 20:00:27 +00:00
dgp b87eac8cd9 Add DECACHE/CACHE_STACK_INFO() protections to calls out of the bytecode
execution engine to avoid panics from corrupted execution stack.
2023-08-03 20:00:01 +00:00
dgp e1c71e6896 merge trunk 2023-08-03 17:11:57 +00:00
jan.nijtmans 89cc07aa34 Merge 8.7 2023-08-03 13:04:33 +00:00
jan.nijtmans aeaba6971a Merge 8.7 2023-08-03 11:26:37 +00:00
jan.nijtmans a53c12b3b5 Implement TCL_LIB_FLAG/TCL_BUILD_LIB_SPEC for Windows (which - aparently - has always been just empty) 2023-08-03 10:59:49 +00:00
jan.nijtmans b29ad5dcf2 DOn't use --out-implib on Cygwin any more, no longer needed 2023-08-03 10:15:41 +00:00
jan.nijtmans a6714c6778 Merge 8.7 2023-08-02 20:51:52 +00:00
jan.nijtmans 0472854629 Merge 8.6 2023-08-02 19:34:00 +00:00
jan.nijtmans cca28f5ef3 deprecate TCL_EXPORT_FILE_SUFFIX: no longer needed. Fix some path handling containing spaces 2023-08-02 19:13:20 +00:00
jan.nijtmans 02a78b9209 Rebase to 8.7 2023-08-02 08:02:54 +00:00
jan.nijtmans e97b71f139 Merge 8.7 2023-08-01 16:12:15 +00:00
jan.nijtmans 47f462c33c Make sure that zdll.lib and tommath.lib are installed in windows, for possible use by extensions. 2023-08-01 16:09:48 +00:00
jan.nijtmans 66027ff8e6 Merge 8.7 2023-08-01 15:52:03 +00:00
jan.nijtmans 2e364fd375 Merge 8.6 2023-08-01 15:42:36 +00:00
jan.nijtmans cb7eb97a8d Add TCL_ZLIB_LIB_NAME to tclConfig.sh (for Windows) 2023-08-01 15:27:33 +00:00
jan.nijtmans 911d6f8e5e Merge 8.7 2023-08-01 13:57:28 +00:00
jan.nijtmans 09e16559af testcase cleanup 2023-08-01 13:19:26 +00:00
apnadkarni c94d0732e0 Bug [76d45ec836] - mingw - tommath not copied on install 2023-08-01 13:01:25 +00:00
jan.nijtmans 89bd2c3eea Rebase to 8.7. Adapt "gets" the same way as "read" 2023-08-01 11:10:52 +00:00
jan.nijtmans 2618ae962a merge-mark 2023-08-01 06:53:46 +00:00
jan.nijtmans 82703fea0a merge-mark 2023-08-01 06:52:30 +00:00
jan.nijtmans 3b99720301 Prevent Tcl 8.6 header-file to be usable for Tcl 9 compiles. (see [6f22c7a1fc]) 2023-08-01 06:46:56 +00:00
jan.nijtmans f70182e63c Some more int -> Tcl_Size (backported from 9.0) 2023-08-01 06:39:33 +00:00
jan.nijtmans 1625f9f678 Fix [e58d7e19e9]: Upwards compatibility of TclObjTypeHasProc() 2023-07-31 15:58:14 +00:00
jan.nijtmans fddaf810d4 Add (hopefully confincing) testcase for bug [e58d7e19e9] 2023-07-31 15:45:13 +00:00
dgp 3ca4a72beb merge trunk 2023-07-31 15:34:13 +00:00
jan.nijtmans 551efd8e1e TIP #662: Un-deprecate Tcl_VarEval 2023-07-31 07:55:54 +00:00
jan.nijtmans fc19cf036c Merge bug-e58d7e19e9-demo branch: Show that everything works fine here. 2023-07-29 20:35:16 +00:00
jan.nijtmans e7cef5d811 Demo bug [e58d7e19e9] 2023-07-29 18:11:26 +00:00
jan.nijtmans 6cf50a9a1e Rebase to 9.0 2023-07-29 16:42:16 +00:00
apnadkarni 848c57d596 Merge 8.7 - Tcl_ListObjIndex tests 2023-07-29 06:46:16 +00:00
apnadkarni a0cee2b681 Add tests for out of bounds Tcl_ListObjIndex 2023-07-29 05:56:10 +00:00
apnadkarni ae7471ec7e A bunch of 64 bit fixes (int->Tcl_Size) and the like. 2023-07-28 15:51:02 +00:00
jan.nijtmans 4eb2a153b7 Rebase to 9.0 2023-07-28 14:40:46 +00:00
jan.nijtmans 861b69164d Merge 8.7 2023-07-28 08:04:01 +00:00
jan.nijtmans c94fa5b242 "utf-8" is the new "identity": make it available always 2023-07-28 07:50:18 +00:00
apnadkarni dc033db224 Merge 8.7 Encoding doc fix 2023-07-28 05:04:44 +00:00
apnadkarni 5c12e53355 Fix transposing of TCL_OK, TCL_ERROR in Encoding docs 2023-07-28 05:02:37 +00:00
jan.nijtmans d74efff177 Add some implicit "-profile tcl8" to testcases 2023-07-27 16:27:21 +00:00
apnadkarni e253c3eed9 Merge trunk 2023-07-27 16:26:38 +00:00
jan.nijtmans 8225b1fd25 Rebase to 9.0. Add more filname encoding checks 2023-07-27 15:13:36 +00:00
jan.nijtmans 78c6a505b7 Demonstration how to add TCL_OBJTYPE_V3, while keeping upwards compatibility: all other TCL_OBJTYPE_V? macro's continue to work 2023-07-27 13:19:48 +00:00
jan.nijtmans 503165d9c2 Proposed fix for [e58d7e19e9]: Upwards compatibility of TclObjTypeHasProc() 2023-07-27 13:10:40 +00:00
jan.nijtmans e4971bdffc Proposed fix for [e58d7e19e9]: Upwards compatibility of TclObjTypeHasProc() 2023-07-27 12:57:27 +00:00
jan.nijtmans af64c95042 merge-mark 2023-07-27 07:56:27 +00:00
jan.nijtmans 90034cb557 Merge 8.7 2023-07-27 07:52:44 +00:00
jan.nijtmans d49a7f9c8d int -> Tcl_Size in Tcl_MacOSXOpen*BundleResources 2023-07-27 07:22:56 +00:00
jan.nijtmans 3f7d896efb merge-mark 2023-07-26 15:18:53 +00:00
jan.nijtmans 60c1d787b1 Simplify tenviron2utfdstr(), since 2nd argument is always -1. 2023-07-26 15:15:22 +00:00
jan.nijtmans b8117727ea Rebase to 8.7 2023-07-26 11:29:37 +00:00
jan.nijtmans 75428bc8f7 Rebase to 8.7 2023-07-26 10:32:45 +00:00
jan.nijtmans df1e155f68 Merge 8.7 2023-07-26 08:06:52 +00:00
jan.nijtmans 862ae1266c Merge 8.6 2023-07-26 08:03:45 +00:00
jan.nijtmans b985fb8965 Fix [c54e4a1aeb] (again): High Tcl latencies with fork() in larger systems.
vfork() is now prefered, if available
2023-07-26 07:15:26 +00:00
jan.nijtmans 004d2e654f Close fork. Prefer vfork over posix_spawnp 2023-07-25 15:57:02 +00:00
neumann 323f750af8 Regenerated configure file 2023-07-25 15:07:31 +00:00
jan.nijtmans 8733687efc Add (back) check for vfork() 2023-07-25 10:35:22 +00:00
neumann d880550d56 Prefer vfork() over posix_spawnp()
In essence, older versions of the posix_spawn(p) implementation under
glibc have the problem not returning the correct error number in case
the spawn call fails. This is e.g. a problem with CentOS 7, which uses
GNU libc 2.17, which was released 2012-12-25. This has the consequence
that on such systems, Tcl is not error message compliant to versions
without posix_spawn.

The versions of vfork() do not face this problem and show similar
performance characteristics like with posix_spawnp() (spawn time in
essence independent of memory footprint size).

This change was tested with macOS 13.4, Ubuntu 20.04, CentOS 7.9 and
OpenBSD 7.2.
2023-07-25 09:01:51 +00:00
jan.nijtmans c1e69b2d6b Make use_spawn static 2023-07-25 07:54:42 +00:00
jan.nijtmans ecc60b1256 Re-generate configure and tclConfig.h.in 2023-07-25 07:44:01 +00:00
jan.nijtmans b7f335b27d attempt to fix posix_spawn on linux 2023-07-25 07:36:19 +00:00
dgp 9ac9971e45 merge trunk 2023-07-24 16:26:50 +00:00
jan.nijtmans 50944b9abf merge-mark 2023-07-24 15:18:50 +00:00
jan.nijtmans 4dd445404b Merge 8.7 2023-07-24 15:14:46 +00:00
jan.nijtmans ffe298076d Merge 8.6 2023-07-24 15:13:51 +00:00
jan.nijtmans 4f7e149fb6 For now, disable posix_spawnp, until we have a better solution for [407b70361c148773] 2023-07-24 15:12:04 +00:00
jan.nijtmans 545fe029f6 Merge 8.7 2023-07-24 13:32:43 +00:00
jan.nijtmans 399309020d Merge 8.6 2023-07-24 11:13:58 +00:00
jan.nijtmans 30816932df Keeping open [c54e4a1aeb]: Can the exec-17.1 test-failure on MaxOS be fixed? 2023-07-24 10:34:59 +00:00
jan.nijtmans 03b881a299 Fix [c54e4a1aeb]: High Tcl latencies with fork() in larger systems 2023-07-24 10:19:52 +00:00
apnadkarni a3581baf86 Docs - tilde substitution and unsigned int->size_t in Tcl_Alloc 2023-07-24 05:40:38 +00:00
dgp de645ea09c merge trunk 2023-07-21 15:39:54 +00:00
jan.nijtmans 192dc7dffd Merge 9.0 2023-07-21 12:49:41 +00:00
jan.nijtmans 72fef9d4d0 Merge 8.7 2023-07-21 12:00:42 +00:00
jan.nijtmans 7caf2af1db simplify tenviron2utfdstr/utf2tenvirondstr macro's, since 2nd argument is always -1
Improve error-handling related to environment variables
All 'stolen' from TIP #571 branch
2023-07-21 11:37:21 +00:00
jan.nijtmans 1077a8bb48 Merge 8.7 2023-07-21 10:02:31 +00:00
jan.nijtmans a22f4cc167 Check for _LARGEFILE64_SOURCE after _FILE_OFFSET_BITS=64, since the latter is prefered 2023-07-21 07:11:25 +00:00
jan.nijtmans d357339eb6 Merge 8.7 2023-07-20 21:01:03 +00:00
jan.nijtmans 9195d0b1bc Fix handling of pre-built libtommath.dll on win64-arm 2023-07-20 20:52:03 +00:00
jan.nijtmans 68d6993ee8 More Tcl_UtfToExternalDStringEx usage, for encoding-error checking 2023-07-20 20:10:06 +00:00
jan.nijtmans 216559a0a6 Make "cd" encoding-error-aware 2023-07-20 16:22:24 +00:00
jan.nijtmans 041458aca6 Add comment to cmdAH-24.20.[12] 2023-07-20 13:32:47 +00:00
jan.nijtmans 6a7b44b23c .... forgot to re-generate tclConfig.h.in 2023-07-20 13:07:41 +00:00
jan.nijtmans c45f83b3db Fix [d40b9c8503]: Enforcing 64-bit time_t? 2023-07-20 12:45:01 +00:00
jan.nijtmans 72db4a5deb Don't bail out when no 64-bit time is available 2023-07-20 12:41:32 +00:00
jan.nijtmans 73a790977d Rebase to 9.0 2023-07-19 16:00:31 +00:00
jan.nijtmans 31d2eacf41 Rebase to 9.0 2023-07-19 14:53:13 +00:00
jan.nijtmans c510082005 Merge 8.7 2023-07-19 14:49:55 +00:00
jan.nijtmans 515bd7c0e7 Improve error-reporting possibilities for Tcl_ExternalToUtfDStringEx/Tcl_UtfToExternalDStringEx in case no interpreter is available, by setting "errno". 2023-07-19 14:23:31 +00:00
jan.nijtmans 50eeabb101 Bugfix for escape-encoding, 'stolen' from TIP #671 branch 2023-07-19 13:04:51 +00:00
jan.nijtmans 2542a8f81e Somewhat better error-reporting 2023-07-19 11:18:30 +00:00
jan.nijtmans c444c608df Merge 9.0 2023-07-19 08:59:56 +00:00
apnadkarni 2e4dede387 Merge 8.7 - install tommath.lib 2023-07-17 16:48:17 +00:00
apnadkarni 0a3cfc7902 Fix: tommath.lib needs to be installed to permit extensions to link when using the tommath C API 2023-07-17 16:36:51 +00:00
apnadkarni 53f75ee8c8 Merge 8.7 - update for missing TIP 548 function docs 2023-07-17 06:31:17 +00:00
apnadkarni fc0c89372c Fix missing TIP 548 function docs. Some copy editing of doc prototypes for clarity (sez he). 2023-07-17 06:19:41 +00:00
apnadkarni 7791d13f5c Merge 8.7 - Bug [a366c6efee] 2023-07-16 07:23:13 +00:00
apnadkarni ccf857a3db Bug [a366c6efee] 2023-07-16 06:15:36 +00:00
griffin 56ca2a64d7 Fix bug [c25d2cd3e6], as well as memory leaks in lsearch and concat.
Add cleanup to some tests.
Fix bug and leak in tclTestABSList.c
Correct comment in tclArithSeries.c
2023-07-16 00:24:54 +00:00
dgp e10b5cb8b9 Same fix in chanio.test 2023-07-14 15:59:12 +00:00
dgp 88dd8c1911 Move channel close commands to -cleanup so that when the (expected) error
occurs in [fcopy] we do not leave open channels lurking to interfere with
later tests.
2023-07-14 15:36:05 +00:00
dgp 20188493af dup test name 2023-07-14 14:18:18 +00:00
dgp 064c955141 merge trunk 2023-07-14 13:29:36 +00:00
jan.nijtmans e3a6968b93 Use "strict" in almost all commands. Only "glob" and environment variables are left out. (Experimental) 2023-07-14 11:13:30 +00:00
jan.nijtmans 2d5f7e8dd7 Rebase to 9.0 2023-07-14 06:31:41 +00:00
jan.nijtmans d08eb4bc7d Merge 8.7 2023-07-14 06:28:38 +00:00
dgp a8b279abb2 merge trunk 2023-07-13 19:25:26 +00:00
oehhar 3fb975f30d Correct wording in Comment 2023-07-13 17:19:06 +00:00
jan.nijtmans 1e54e0ba13 Merge 8.7 2023-07-13 16:23:10 +00:00
jan.nijtmans 55d08599b5 Backport changes in tclListObj.c from Tcl 9.0 2023-07-13 15:42:07 +00:00
pooryorick 0900f426bd Remove incorrect lines that were added to SetDuplicatePureObj().
SetDuplicatePureObj() is specifically not about preserving immutable string
value semantics from the orginal object to the new object.
2023-07-13 12:06:14 +00:00
jan.nijtmans 7709859190 Eliminate another compiler-warning, with -DTCL_NO_DEPRECATED=1 2023-07-12 20:02:39 +00:00
jan.nijtmans aeb6cd1eb9 One more unresolved reference (see prev commit) 2023-07-12 19:56:27 +00:00
jan.nijtmans ca2928e660 More fixes related to [c1691dc608]: 32-bit Linux regressions, like ".... undefined reference to `TclGetUnicodeFromObj'" 2023-07-12 19:36:00 +00:00
jan.nijtmans 99e286f193 Merge 8.7 2023-07-12 19:13:25 +00:00
jan.nijtmans a123c440eb (partial) fix for [c1691dc608]: 32-bit Linux regressions. Eliminate compiler warning 2023-07-12 19:11:46 +00:00
jan.nijtmans 6b299f271e Merge 8.7 2023-07-12 15:12:20 +00:00
jan.nijtmans 74ba5e4336 Fix special-case in SetDuplicatePureObj(): Since typePtr is always &tclListType (ALL current calls to TclDuplicatePureObj() have &tclListType as last argument), this constructions can never work.
(I'm not sure this code is usefull at all, but that's for another day)
2023-07-12 15:09:52 +00:00
jan.nijtmans 6535d19542 Merge 8.7 2023-07-12 14:43:13 +00:00
jan.nijtmans 56aabaf032 Consider 3 more types as special in TclDuplicatePureObj(). Updated comment for the reason why. 2023-07-12 11:38:08 +00:00
apnadkarni 03e22c83db Merge mark 2023-07-12 06:42:39 +00:00
apnadkarni 38d334f8f2 Fix [54329e39c7] 2023-07-12 06:39:22 +00:00
griffin 62f180300b Fix foreach bug [a34733451b].
Other code cleanup discovered by code review.
2023-07-12 03:06:54 +00:00
apnadkarni 6c4636e94b Fix [54329e39c7] 2023-07-12 02:51:50 +00:00
apnadkarni 4ee94e4f67 Add test 2023-07-12 02:31:54 +00:00
apnadkarni 04328bc720 Tweak last for performance in case of traditional lists. 2023-07-11 16:43:13 +00:00
apnadkarni d852753be2 Wrap DECACHE_STACK_INFO around Tcl_ListObjIndex call from bytecode engine. 2023-07-11 12:59:13 +00:00
apnadkarni f7429e3230 Prevent foreach memory bloat iterating within a proc 2023-07-11 11:35:01 +00:00
jan.nijtmans cd97018033 Merge 8.7 2023-07-11 09:23:33 +00:00
jan.nijtmans 531cd741e0 Fix [5916e48806]: tcl.pc: hardcoded depedencies, missing build flags 2023-07-11 09:20:52 +00:00
jan.nijtmans 7aa511f93b Merge 8.7 2023-07-10 16:07:08 +00:00
jan.nijtmans bc24a1ca5a Code cleanup for arithSeries, all backported from 9.0 2023-07-10 15:57:51 +00:00
jan.nijtmans 130ad34339 Merge 9.0 2023-07-10 07:27:15 +00:00
apnadkarni 7f10145e49 Permit large scripts > INT_MAX. Not complete because compiler source line tracking still limited. 2023-07-09 14:47:22 +00:00
apnadkarni 3edb9b4175 Create new branch named "apn-fix-scripts64" 2023-07-09 13:51:12 +00:00
jan.nijtmans af99fa7f7f missed a few 2023-07-09 12:54:24 +00:00
jan.nijtmans 3f0dc94455 Rebase to 8.7 2023-07-09 12:41:46 +00:00
jan.nijtmans 0f0bd5de07 Unbreak Windows build (broken by [765c9c37a2] due to TIP #628) 2023-07-08 20:36:56 +00:00
jan.nijtmans 35baa585da Merge-mark 2023-07-08 20:28:06 +00:00
jan.nijtmans 6cc4425966 Fix [c5bcbf3494]: Output of surrogates seems to repeat following character 2023-07-08 20:25:28 +00:00
griffin 14cb83639f Cleanup abstract list ObjType function definitions. 2023-07-07 21:06:45 +00:00
jan.nijtmans 68d6146f53 Make TIP #636 work together with TIP #628: Shared 8.7/9.0 build environment 2023-07-07 14:57:17 +00:00
jan.nijtmans ad7e9fe625 TIP #636 cleanup: Eliminate the use of Tcl_ObjTypeLength() et al, which look public but are internal and not documented anywhere. 2023-07-07 14:23:37 +00:00
neumann 5452282a91 - reduced error of posix_spawnp() cases for macOS to 1 (exec-17.1).
The problem seems related to a different I/O setup for cases,
  when stdout is closed and to be replaced by a different stream
- deactivated posix_spawnp() for macOS for the time being
2023-07-07 13:30:19 +00:00
griffin 1858192725 merge TIP #636 (tip-636-tcl9-644) 2023-07-07 02:56:48 +00:00
griffin e7d7e2db67 merge trunk 2023-07-06 21:37:23 +00:00
griffin 024c0aa13a merge trunk 2023-07-06 19:12:14 +00:00
jan.nijtmans 5e662840fb off-by-one. Minor optimization 2023-07-06 16:13:13 +00:00
jan.nijtmans 6ad38477e3 Proposed fix for [c5bcbf3494]: Output of surrogates seems to repeat following character. Also use more ***_SURROGATE() macro's 2023-07-06 15:07:48 +00:00
jan.nijtmans 7ef194a7d1 Merge 8.7 2023-07-05 15:10:20 +00:00
jan.nijtmans a2e7501d74 Merge 8.6 2023-07-05 15:08:38 +00:00
jan.nijtmans 575f580d51 Backport [66ffafd309]: Truncated encoding for DBCS results in infinite loop and running out of memory 2023-07-05 14:55:51 +00:00
apnadkarni 3106ce90c0 Merge 8.7 - Bug [5be203d6ca] - io-7.3 failure 2023-07-05 05:52:58 +00:00
apnadkarni 0109dc8279 Bug [5be203d6ca] - io-7.3 failure 2023-07-05 05:08:56 +00:00
apnadkarni b49afc700b Bug [5be203d6ca] - better fix and add test 2023-07-05 03:23:43 +00:00
griffin 70ca2e60fd merge trunk 2023-07-04 18:13:54 +00:00
jan.nijtmans 3135d809f5 Merge 8.7 2023-07-04 15:13:50 +00:00
jan.nijtmans 6bf04853ec Use more uppercase hex in documentation and test-cases (for consistancy) 2023-07-04 14:52:30 +00:00
jan.nijtmans a2c7cc0d23 Use "tcltest::Asciify" in stead of "printable" 2023-07-04 11:18:44 +00:00
jan.nijtmans ab5eabd5a4 Rebase to 9.0 2023-07-04 08:38:02 +00:00
apnadkarni 3d2de6ed07 Correctly compute consumed bytes in case of truncated byte sequence at end. 2023-07-04 06:47:13 +00:00
griffin 7e59780763 merge trunk 2023-07-03 17:07:04 +00:00
jan.nijtmans a071f9c13b Remove useless section in tclUnixPort.h 2023-07-03 15:29:37 +00:00
jan.nijtmans edd3934b32 Merge 8.6. Put vfork check a little bit earlier in unix/tcl.m4. Re-generate unix/configure with (modified) autoconf-2.59 2023-07-03 15:07:05 +00:00
jan.nijtmans f24bab84df Branch meant for bug-fixing [5be203d6ca]: io-7.3 and chanio-7.3 fail in debug mode 2023-07-03 14:16:37 +00:00
jan.nijtmans 3d98702f45 Merge 8.7 2023-07-03 14:10:34 +00:00
jan.nijtmans 6416a20fd8 Adapt tcltest::Asciify, so it's usable for Tcl 8.5 and 8.6 too 2023-07-03 14:09:23 +00:00
jan.nijtmans 77c8868be4 Fix testcase (broken by previous commit) 2023-07-03 14:08:41 +00:00
jan.nijtmans ee7499c2e3 Fix comment (missing ticket ID) 2023-07-03 13:51:28 +00:00
jan.nijtmans 3bfb46688d Temporary disable tests io-7.3 and chanio-7.3, which fail in debug mode. Ticket [5be203d6ca] created. 2023-07-03 13:46:54 +00:00
jan.nijtmans 78c9978aa1 Fix [a5901fc953]: Version control should ignore unix/dltest/embtest 2023-07-03 08:03:03 +00:00
griffin 7968fff465 Add tests for scalar numeric values. 2023-07-03 00:33:16 +00:00
jan.nijtmans 67dfc6e7e3 Merge 8.7 2023-07-02 12:07:35 +00:00
jan.nijtmans 690c5c2c9e Merge 8.6 2023-07-02 12:02:51 +00:00
jan.nijtmans 0070215933 No need for function prototypes in unix/dltest/*.c 2023-07-02 11:53:38 +00:00
fvogel e668c10036 merge core-8-branch (no change) 2023-07-02 09:26:53 +00:00
fvogel 4773d1dadd merge core-8-6-branch (no change) 2023-07-02 09:26:29 +00:00
fvogel bf2b5846b0 Unbreak the 8.6 build. 2023-07-02 09:25:57 +00:00
fvogel 32bd9fd0d2 We definitely need to build core-8-6-branch of Tcl IMHO. 2023-07-02 08:21:04 +00:00
fvogel 5162de4fec We definitely need to build core-8-6-branch of Tcl IMHO. 2023-07-02 08:20:53 +00:00
fvogel 6b4a453621 We definitely need to build core-8-6-branch of Tcl IMHO. 2023-07-02 08:20:36 +00:00
apnadkarni 6a1f856c63 8.7 merge mark 2023-07-02 04:57:10 +00:00
apnadkarni 5dab0fa5de Backport fix [66ffafd309]. DBCS infinite loop on invalid encoding 2023-07-02 04:55:47 +00:00
apnadkarni f368137ec5 8.7 merge mark (lseq tests) 2023-07-02 04:54:33 +00:00
apnadkarni b863e0d57a Tests for [66ffafd309] 2023-07-02 03:03:30 +00:00
apnadkarni 01785b73fb Fix [66ffafd309]. DBCS infinite loop on invalid encoding 2023-07-02 02:41:59 +00:00
apnadkarni cfc103c6b8 Bug [66ffafd309] 2023-07-01 18:02:07 +00:00
griffin 7de69aeb41 merge trunk 2023-06-30 22:16:55 +00:00
griffin a55934d712 Test update for bug [63530267aa]. 2023-06-30 20:34:09 +00:00
griffin 04249bbcd7 Test update for bug [63530267aa]. Fix 32-bit embtest build issue. 2023-06-30 19:02:34 +00:00
griffin eb1f9c9989 merge trunk 2023-06-30 14:34:09 +00:00
jan.nijtmans da8010ca5c Merge 8.7. Remove unused TclArithSeriesObjLength() 2023-06-30 13:40:48 +00:00
jan.nijtmans 6c5be5280f Merge 8.6 2023-06-30 13:28:56 +00:00
jan.nijtmans 24f3e6199d Use more strict compilation-flags (but not -DTCL_MEM_DEBUG) in unix/dltest/Makefile 2023-06-30 13:10:36 +00:00
jan.nijtmans 81da6c1a9a Since TCL_MAJOR_VERSION is always "8", don't check for it. Add C++-compatible typecasts. 2023-06-30 13:08:30 +00:00
neumann f4a4df7a48 Updated configure script to ease testing with this branch 2023-06-30 09:56:01 +00:00
neumann c59dfa5e83 Removed automated setting of USE_VFORK for macOS
The automatic setting of USE_VFORK in unix/configure.in is useless,
confusing, and deprecated. 

Background: configure.in had a section, where it sets
automatically USE_VFORK for macOS.

if test "`uname -s`" = "Darwin" ; then
...
    AC_DEFINE(USE_VFORK, 1, [Should we use vfork() instead of fork()?])
...

However, Daniel Steffen has added the following section 17 years ago
which effectively deactivated USE_VFORK for the x86_64 platform, when
it is set, due to a bug report in RDAR (Apple's bug tracking
system). 16 years ago a section was added to deactivate USE_VFORK for
all platforms with llvm-gcc-4.2 or newer.

/* 
 *---------------------------------------------------------------------------
 * At present, using vfork() instead of fork() causes execve() to fail
 * intermittently on Darwin x86_64. rdar://4685553
 *---------------------------------------------------------------------------
 */

/* Workaround problems with vfork() when building with llvm-gcc-4.2 */
            (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 2 || \
            (__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ > 0))))

This means, that the last 17 years, USE_VFORK was not doing anything
on macOS. Furthermore, macOS 12 (Monterey, released 2021) deprecated
vfork() officially. 

Therefore, it is safe to remove the setting of USE_VFORK from the
default configuration for macOS.

It is still possible to set USE_VFORK manually for certain platform if
needed.
2023-06-30 09:49:08 +00:00
neumann 3f68e9f64f Added auto-configuration of posix_spawnp()
Removed the manual setting of USE_POSIX_SPAWN and
replaced it by HAVE_POSIX_SPAWNP.
2023-06-30 09:12:02 +00:00
jan.nijtmans 801ae4d914 Revert 'fix' for [ac874937c5], committed as part of a "Merge 8.7" commit. It's wrong, since "embtest" is expected to be an executable, not a shared library 2023-06-30 07:40:19 +00:00
griffin cd82527608 merge 8.7 2023-06-29 18:30:13 +00:00
griffin 6f98b30d5b Fix uninitialized variable. 2023-06-29 15:42:14 +00:00
dkf 4b6859f9dc Add timeouts to github workflows to catch runaway scripts 2023-06-29 15:13:57 +00:00
jan.nijtmans cda1e32fe2 Merge 9.0 2023-06-29 13:12:59 +00:00
jan.nijtmans e6a208d52e Merge 9.0 2023-06-29 13:12:05 +00:00
apnadkarni 13b2522d41 Merge 8.7 - Bug [6a3e2cb0f0] - invalid bytes in escape encodings 2023-06-29 11:30:51 +00:00
apnadkarni 6ae93efff0 Bug [6a3e2cb0f0] - invalid bytes in escape encodings 2023-06-29 11:09:29 +00:00
jan.nijtmans 3a1e74ddc5 Merge-mark 2023-06-29 07:24:20 +00:00
bch 77e78fb537 ws 2023-06-29 00:09:52 +00:00
bch 650c2e23a9 speeling 2023-06-29 00:02:38 +00:00
griffin b95bc2b4ce Fix ticket [63530267aa] by implementing ticket [e5f06285de] and making additional corrections. 2023-06-28 19:36:41 +00:00
dgp eea1ed4e1a Remove documentation of deleted subcomands. 2023-06-28 17:06:40 +00:00
dgp 077a907786 merge trunk 2023-06-28 13:24:31 +00:00
dgp 6c27274d72 merge trunk 2023-06-28 13:15:56 +00:00
jan.nijtmans 324c39d51c Merge 8.7 2023-06-28 07:27:17 +00:00
jan.nijtmans 26aa7dd453 Fix [26960060d7]: lseq-3.14 triggers use-after-free 2023-06-28 07:20:18 +00:00
jan.nijtmans bc27046551 Fix [78b9b6860c]: Please sync tclOOScript.h 2023-06-28 07:15:59 +00:00
jan.nijtmans e30e67e0cd Fix [https://core.tcl-lang.org/tk/tktview/a9929f112a|a9929f112a]: Bugs in the implementation of TIP #577 ('Enhanced index values for Tk') 2023-06-28 07:10:49 +00:00
dgp ca11315223 merge trunk 2023-06-27 15:38:46 +00:00
jan.nijtmans e5d7a4afce Merge 9.0 2023-06-27 15:31:05 +00:00
dgp b500985e25 merge trunk 2023-06-27 15:26:00 +00:00
jan.nijtmans d273c052a5 Fix [24a8c16dbd]: bigdata.test: invalid command name "testbigdata" on 32-bit 2023-06-27 12:57:13 +00:00
pooryorick 53cfe378b3 Fix previous errors in encoding.test 2023-06-27 10:07:19 +00:00
jan.nijtmans 7f18f499d0 Merge 8.7 2023-06-27 06:55:41 +00:00
jan.nijtmans 04d66a2571 Remove compat/dirent*.h and some other compat/*.c files: Modern C-compilers all have those now 2023-06-27 06:42:06 +00:00
jan.nijtmans e8d619b292 Merge 8.7 2023-06-26 10:12:17 +00:00
jan.nijtmans 1b53ef3bbd Remove compat/stdint.h and compat/stdlib.h: All C-compilers nowadays have it. 2023-06-26 09:52:00 +00:00
jan.nijtmans 07ea9d3df5 Merge 9.0 2023-06-23 23:18:41 +00:00
griffin bd64729686 merge trunk 2023-06-23 17:48:07 +00:00
griffin 4fdc66665f Fix build issue with no_deprecated. 2023-06-23 17:32:43 +00:00
dgp 4a16170216 merge trunk 2023-06-23 12:28:53 +00:00
dgp 630e9dd053 merge trunk 2023-06-23 12:27:48 +00:00
jan.nijtmans be1a8384ef Merge 8.7 2023-06-22 20:07:18 +00:00
jan.nijtmans e37db31205 Fix [44452e2c55]: indexObj.test failures on i386 2023-06-22 19:00:59 +00:00
jan.nijtmans 823a3f2b2b Merge-mark 2023-06-22 13:40:35 +00:00
jan.nijtmans 9df01df02c Since Tcl 8.6 doesn't know about Tcl_Size, don't use it, not even in test comments 2023-06-22 13:39:14 +00:00
jan.nijtmans f35db8a093 Proposed fix for [44452e2c55]: indexObj.test failures on i386 2023-06-22 11:59:58 +00:00
jan.nijtmans b8c47674a4 WIP for fixing [https://core.tcl-lang.org/tk/tktview/a9929f112a|a9929f112a] 2023-06-22 10:12:42 +00:00
jan.nijtmans 9a18abc855 merge-mark 2023-06-21 22:44:08 +00:00
jan.nijtmans 22c9ba1a27 (partial) fix for [https://core.tcl-lang.org/tk/tktview/a9929f112a|a9929f112a]: Bugs in the implementation of TIP 577 ("Enhanced index values for Tk" ) 2023-06-21 22:38:58 +00:00
jan.nijtmans bc87d9a2bc Fix 3 "lset" testcases 2023-06-21 21:30:53 +00:00
dgp 35531e2f3c A few more test updates. 2023-06-21 16:08:57 +00:00
dgp f44e588154 merge trunk 2023-06-21 15:53:58 +00:00
dgp 46bd8eb678 merge trunk 2023-06-21 15:53:15 +00:00
jan.nijtmans 7c2d72933f (partial) fix for [https://core.tcl-lang.org/tk/tktview/a9929f112a|a9929f112a]. Tk needs some changes too 2023-06-21 14:52:44 +00:00
jan.nijtmans f55c0c81b1 Merge 9.0 2023-06-21 07:33:41 +00:00
jan.nijtmans eb09d3860d Merge 8.7 2023-06-21 07:18:34 +00:00
jan.nijtmans 09c0f68355 "trace variable" -> "trace add variable" in testcases (and documentation) 2023-06-21 07:13:48 +00:00
griffin 172063cace Fix bug in TEBC foreach with abstractlists 2023-06-20 22:16:54 +00:00
jan.nijtmans e26ccd75b1 Merge 8.7 2023-06-20 07:11:30 +00:00
jan.nijtmans 104527a107 Move VarHashGetKey() to tclInt.h. More int -> Tcl_Size 2023-06-20 06:51:49 +00:00
griffin 2e4b97b87f merge trunk 2023-06-20 01:47:47 +00:00
griffin be39d74ee7 Fix crash in BC execution when str concat and abstract list lindex operations have recursive BC execution.
Add testcase for this bug.
2023-06-20 01:28:25 +00:00
apnadkarni ded49faad5 Merge 8.7 - fix tests - hardcoded port and wsl. 2023-06-19 13:39:31 +00:00
apnadkarni 73a582c685 Merge 8.6 - fix tests - hardcoded port and wsl. 2023-06-19 13:21:46 +00:00
apnadkarni c2f255fe84 Fix hardcoded port numbers causing Windows failures with hyperv. Disable
file perm test for WSL.
2023-06-19 12:49:29 +00:00
jan.nijtmans 2ebe7012db Merge 8.7 2023-06-19 12:42:00 +00:00
jan.nijtmans ec8dfd57db Some more Tcl_Size usage 2023-06-19 11:47:58 +00:00
griffin d8ce1ffde8 merge trunk 2023-06-19 04:29:28 +00:00
jan.nijtmans 7f8e25f907 Fix [c13819225e]: Problem with lsort|lsearch -stride on 32-bit linux 2023-06-18 11:04:22 +00:00
griffin 06465624ac Clarification. 2023-06-18 01:51:10 +00:00
jan.nijtmans cf84dd6daf Proposed fix for [c13819225e]: Problem with lsort|lsearch -stride on 32-bit linux. Also fix some compiler warnings 2023-06-16 12:21:21 +00:00
oehhar 954457baf9 tip-636-tcl9-644: doc/Object.3: remove double "the" 2023-06-16 10:49:41 +00:00
griffin f1b8cb6289 Add Tcl_ObjType changes to the appropriate docs. 2023-06-15 20:45:55 +00:00
neumann 414a984d04 Made variant using USE_POSIX_SPAWN error message compatible
This change makes Tcl compiled with USE_POSIX_SPAWN activated error
message compatible with previous versions (using fork). Now, the Tcl
regression test succeeds without errors.
2023-06-15 16:56:35 +00:00
jan.nijtmans 28a15ce481 TIP #653 implementation (with a lot of corrections compared to the py-b8f575aa23 or the other tip-653 branch) 2023-06-15 15:44:04 +00:00
griffin 2e79331ac0 merge trunk 2023-06-13 16:59:57 +00:00
griffin 7d37ba8e63 Remove getdbl abstraction. 2023-06-13 16:47:25 +00:00
dgp 7458e599f8 merge trunk 2023-06-13 13:42:42 +00:00
jan.nijtmans 71f0b4a44a Rebase to 9.0 2023-06-13 09:50:07 +00:00
jan.nijtmans 478601a07b Merge 8.7 2023-06-13 09:12:25 +00:00
jan.nijtmans 3c8ac03074 Specify implicit "-profile tcl8" in encoding-24.4 testcase 2023-06-13 06:05:02 +00:00
jan.nijtmans 2e58eced0d Merge 9.0 2023-06-12 22:45:30 +00:00
pooryorick d07e50e54a Revert unwarranted change in Tcl_CreateChannel() from [1776327edd]. 2023-06-12 04:10:52 +00:00
apnadkarni 9cf727affb Tests for invalidly encoded file names and env (TIP 671 motivation) 2023-06-11 02:34:35 +00:00
jan.nijtmans 7ab30f565b Merge 8.6 2023-06-08 12:39:44 +00:00
oehhar 4314e8e438 ticket [c54e4a1aeb] patch: Use vfork instead fork. 2023-06-08 12:01:40 +00:00
jan.nijtmans 96c8069270 (cherry-pick): Added note about how some commands are mainly for Tk 2023-06-08 11:59:30 +00:00
dgp b7bfaa423c WIP on TIP 673. First pass exposes issues in the test suite. 2023-06-07 17:24:24 +00:00
griffin dde4e1b094 merge trunk 2023-06-06 20:26:59 +00:00
griffin ac52dca2ba Clean up logic to detect failures. 2023-06-06 16:04:41 +00:00
dgp d8860aee4c merge trunk 2023-06-05 14:36:26 +00:00
dkf a9377a35b7 Added note about how some commands are mainly for Tk 2023-06-05 11:12:08 +00:00
pointsman 5140d2419c Merge 8.7 2023-06-04 22:58:07 +00:00
pointsman d716e3bd57 Merge 8.6 2023-06-04 22:56:45 +00:00
pointsman 02f302c8cf Fixed a new test added by [72f78b60851]. The test as it was repeated just the previous one. Now it shows what was fixed. Removed development comment. 2023-06-04 22:54:59 +00:00
jan.nijtmans 9ef860c58c Merge 8.7 2023-06-03 20:03:28 +00:00
jan.nijtmans 702bb9ab89 Merge 8.6 2023-06-03 19:59:48 +00:00
jan.nijtmans a7e21b7c56 Fix [af3ebc5fafe0097c]: clock scan and clock add bugs in error cases / with abbreviated options 2023-06-03 19:51:21 +00:00
jan.nijtmans 6b77d746e1 Merge 8.7 2023-06-02 22:12:10 +00:00
jan.nijtmans 7e152743be In TclAttemptInitStringRep(): Don't do a memcpy if attemptckalloc() fails 2023-06-02 22:05:03 +00:00
dkf 0513ad381a More library(n) docs 2023-06-02 15:12:26 +00:00
dgp c51f7ddbf5 merge trunk 2023-06-02 15:01:49 +00:00
jan.nijtmans b37dff78c1 Merge 8.7 2023-06-02 14:02:19 +00:00
jan.nijtmans 103eb015c0 Merge 8.7 2023-06-02 13:59:26 +00:00
dgp 73519e9804 silence compiler warning 2023-06-02 13:46:50 +00:00
jan.nijtmans 2867ac2637 New (internal) macro TclAttemptInitStringRep() 2023-06-02 12:00:02 +00:00
jan.nijtmans f9b06e55e4 Merge 9.0 2023-06-01 21:36:46 +00:00
jan.nijtmans 3d0413417d Merge 8.7 2023-06-01 21:04:48 +00:00
jan.nijtmans 56d50aec7c Fix [9921778646]: something is wrong in core-8-branch 2023-06-01 20:58:00 +00:00
dkf b1ee2de573 Added some examples to library(n) 2023-06-01 14:37:44 +00:00
jan.nijtmans 5d5b5a4242 merge-mark 2023-05-31 14:13:19 +00:00
jan.nijtmans c8ff4cae81 Use TclDuplicatePureObj() in stead of TclListObjCopy() where appropriate. Backported from 9.0 2023-05-31 14:12:12 +00:00
dkf 18961ef11c swap foreachLine argument order in tests 2023-05-31 10:39:28 +00:00
dkf 38c9c34398 Swapped foreachLine arg order, improved docs 2023-05-31 10:33:01 +00:00
jan.nijtmans 6104a20928 Merge 8.7 2023-05-31 07:49:17 +00:00
jan.nijtmans b87d0095dc Document hoe Tcl_ReadChars() behaves in "-profile strict" mode when an encoding error happens. 2023-05-31 07:45:52 +00:00
jan.nijtmans 4632c037e3 Merge 8.7 2023-05-31 07:20:18 +00:00
jan.nijtmans 28c9edc49b Fix [c243e7a85e]: TIP #603 implementation broken on Windows 2023-05-31 07:16:04 +00:00
jan.nijtmans 614c8b3360 Let's see if this helps 2023-05-30 21:31:11 +00:00
dgp 11b230b8f7 merge trunk 2023-05-30 15:04:39 +00:00
dkf a4f289d5b5 More typo fixes 2023-05-30 13:57:09 +00:00
dkf d3acda8495 Get return stack correct when doing [return -code error] in the body 2023-05-30 13:48:53 +00:00
dkf cc0a37c8b1 fix whitespace 2023-05-30 12:41:58 +00:00
jan.nijtmans 75bdb75689 Merge 8.7 2023-05-30 12:22:20 +00:00
dkf b98da201c5 start of test cases 2023-05-30 11:59:21 +00:00
jan.nijtmans 13f6f72bb7 Backport IO-related changes from Tcl 9.0. Needed for preparation of TIP #653 2023-05-30 11:25:13 +00:00
dkf 07f73b212b Added docs 2023-05-30 08:39:23 +00:00
jan.nijtmans af838a5d52 Merge 8.7 2023-05-29 19:41:08 +00:00
jan.nijtmans 8091425c93 int -> Tcl_Size, for full Tcl 9 support 2023-05-29 16:27:28 +00:00
dkf 92e4f94605 Basic implementation of TIP 670 2023-05-29 12:11:30 +00:00
dkf 4c03aeaadd Fix typo and outdated comment 2023-05-29 10:49:45 +00:00
fvogel 69ae2a0f03 merge 8.7 2023-05-28 10:39:40 +00:00
fvogel 7988b3f1b6 Fix errors when building the html man page for configurable.n (TIP #558) 2023-05-28 10:38:13 +00:00
fvogel 827a1d3802 Fix errors when building the html man page for configurable.n 2023-05-28 10:37:31 +00:00
griffin d4e8db78c9 Function name cleanup. 2023-05-26 17:15:12 +00:00
griffin 22306f855b merge trunk, fix leak. 2023-05-25 20:55:52 +00:00
jan.nijtmans bdfec9d055 Adapt data tables to Unicode 15.1 (beta) 2023-05-25 16:12:47 +00:00
jan.nijtmans 0657f97bc5 Eliminate some clang warnings. Only use "testbigdata" if sizeof(Tcl_Size) == sizeof(Tcl_WideInt) 2023-05-25 15:10:55 +00:00
griffin 09bc3f7033 Remove old cruft. 2023-05-25 04:38:32 +00:00
griffin ba261e8e87 merge trunk 2023-05-24 23:17:17 +00:00
griffin c3f8318a3f Cleanup abstract list definitions. 2023-05-24 20:13:20 +00:00
dkf 6598d2eeae TIP 603: Get 'stat' Information of Open Files 2023-05-24 16:04:46 +00:00
dkf 29225e440c merge core-8-branch 2023-05-24 16:02:24 +00:00
jan.nijtmans 231fd112f9 Merge 8.7 2023-05-24 15:29:11 +00:00
jan.nijtmans 70a3d08fc4 Fix regular expression in previous commit 2023-05-24 15:22:00 +00:00
jan.nijtmans c7771a763e Enhance html generation, so it can handle the "©" copy-sign as well 2023-05-24 15:18:05 +00:00
jan.nijtmans 6c1bdd15d6 More size protection for winDde 2023-05-24 15:16:14 +00:00
jan.nijtmans 9a6a7030e8 Remove TCL_SIZE_SMAX, not used anywhere. Some more variable which should have been Tcl_Size 2023-05-24 10:31:56 +00:00
griffin e91f967003 Merge trunk 2023-05-23 21:36:46 +00:00
jan.nijtmans 633171eda9 Merge 8.7 2023-05-23 16:15:10 +00:00
jan.nijtmans 2acd355f8d Give Tcl_CreateThread a TCL_HASH_TYPE (unsigned) stackSize parameter 2023-05-23 16:03:29 +00:00
pointsman 73ff912a1f Proposed fix for [af3ebc5fafe0]. 2023-05-22 12:17:44 +00:00
jan.nijtmans b9722ec356 Merge 8.7 2023-05-22 10:13:42 +00:00
dkf f3f254e8ba Small documentation corrections 2023-05-22 07:48:43 +00:00
jan.nijtmans f1e62884ba Merge 8.7 2023-05-21 23:00:20 +00:00
jan.nijtmans e18d096bd7 Unbreak windows symbols build. More int -> Tcl_Size backported from 9.0 2023-05-21 21:19:22 +00:00
griffin 54a1d7e517 Fix test to be stable. 2023-05-21 20:42:14 +00:00
griffin c6cce703b5 Add cleanup to lseq tests. Fix assertion. 2023-05-20 23:24:54 +00:00
apnadkarni f19e2665d3 Fix [c9663296fd]. Also refactor memory reallocation. 2023-05-20 16:39:50 +00:00
apnadkarni 96d441c29a Minor refactor to combine alloc/realloc 2023-05-20 15:40:17 +00:00
jan.nijtmans 72dfeb60e2 merge-mark 2023-05-20 10:34:14 +00:00
jan.nijtmans b27acbe84f More int/Tcl_Size backport 2023-05-20 10:07:19 +00:00
apnadkarni 1b8701ee3d Merge trunk 2023-05-19 23:07:13 +00:00
apnadkarni 83d22bd1f6 Fix int/Tcl_Size pointer errors 2023-05-19 22:18:51 +00:00
apnadkarni 861c6c226a Fix build - ckalloc/ckfree not in Tcl 9 2023-05-19 21:31:18 +00:00
jan.nijtmans b0bd6fc251 Merge 8.7 2023-05-19 19:50:31 +00:00
jan.nijtmans 6643ceb141 int -> Tcl_Size and other (internal) signature improvements. Most of them backported from 9.0 2023-05-19 19:47:18 +00:00
apnadkarni 16a75f3cbf More refactoring into common code 2023-05-19 16:47:58 +00:00
dkf ed8816500e Improve the synopsis of the transchan manpage so it helps users a bit 2023-05-19 14:15:18 +00:00
dkf 5ef48eba53 Improve the synopsis of the refchan manpage so it helps users a bit 2023-05-19 13:35:19 +00:00
dkf ee48919fcc Merge 8.7 2023-05-19 12:56:28 +00:00
dkf d6a3425ec6 TIP 558: Basic Configure Support for TclOO 2023-05-19 12:06:05 +00:00
dkf b0f19e41f2 merge core-8-branch 2023-05-19 12:02:49 +00:00
jan.nijtmans 53450ff282 Merge 9.0 2023-05-17 22:26:06 +00:00
griffin fa313109d6 Merge trunk 2023-05-17 16:12:25 +00:00
jan.nijtmans 7255484343 Merge 9.0 2023-05-17 14:46:32 +00:00
pooryorick 00dd4a5b56 Improve TclDuplicatePureObj(), remove unnecessary increment/decrement pairs, and add more error checking. 2023-05-17 12:44:46 +00:00
pooryorick ac555b905c New functions: TclUndoRefCount() and TclDictGetSize(). 2023-05-17 12:26:11 +00:00
pooryorick 5990382222 Fix for [5ee01098824881b5], lseq list conversion results in attempt to access
freed memory.
2023-05-17 12:09:27 +00:00
jan.nijtmans 4a82a749de Merge latest 9.0. 2023-05-17 07:38:20 +00:00
jan.nijtmans c7e670b85f Merge 8.7 2023-05-17 07:33:33 +00:00
jan.nijtmans 86e88cf233 Remove dead code 2023-05-17 07:30:54 +00:00
griffin 6781fbdf4b Add Tcl_BumpObj() used to prevent leaks from Abstract List elements.
Add Abstract List (ArithSeries) support in Tcl_ListObjIndex().
Fix obj leaks in lsearch operatations on ArithSeries.
Fix obj leaks in concat operations on ArithSeries.
Add concat and lsearch tests using lseq lists.
2023-05-17 05:09:01 +00:00
jan.nijtmans e47cbdc798 Merge 8.6 2023-05-16 16:31:53 +00:00
jan.nijtmans a5297cf7c3 Some more nmakehlp.c tweaks 2023-05-16 16:30:07 +00:00
jan.nijtmans 32ffe00c48 Merge 8.6 2023-05-16 10:26:48 +00:00
jan.nijtmans 8f8a3bc1c0 Only use _snprintf on older MSVC compilers. ZeroMemory -> memset 2023-05-16 10:19:41 +00:00
pooryorick a038d4aad3 Fix memory leaks and remove unnecessary reference count bounce. 2023-05-16 09:33:12 +00:00
jan.nijtmans 17c92b0a7a Merge 8.7 2023-05-16 06:25:19 +00:00
jan.nijtmans 4eb91b8e5b Remove some more references to removed ChangeLog 2023-05-16 06:07:51 +00:00
jan.nijtmans ebcc04616c More int -> Tcl_Size (in tclInt.h) 2023-05-16 06:05:22 +00:00
pooryorick 50dde26caf New function, TclDuplicatePureObj(), doesn't duplicate the string
representation when duplicating an object, unless necessary.  Remove
TclListObjCopy() in favor of TclDuplicatePureObj(), allowing internal
representation to change after the copy rather than before.
2023-05-16 05:25:31 +00:00
apnadkarni 6fa73194d5 Refactor couple more reallocations 2023-05-15 23:08:17 +00:00
pooryorick 49c4458a25 Add Tcl_DecrRefCount() missing from [4b1a20629e]. 2023-05-15 20:49:43 +00:00
apnadkarni 02563b1911 Refactor allocation in Tcl_DStringAppendElement 2023-05-15 20:23:05 +00:00
dgp f40b0e18da merge trunk 2023-05-15 17:37:43 +00:00
dgp 54e89ec231 merge 8.7 2023-05-15 17:37:21 +00:00
dgp 8074bcec5e TIP 663 implementation 2023-05-15 17:17:43 +00:00
jan.nijtmans 4db805463e Backport test improvements from 9.0 2023-05-15 15:45:57 +00:00
jan.nijtmans 45dd8baf76 No need to init string rep, if we throw away the object immediately 2023-05-15 15:44:34 +00:00
dgp f862ef59dc merge trunk 2023-05-15 13:19:39 +00:00
jan.nijtmans f6f92fd671 Merge 8.7 2023-05-15 11:52:39 +00:00
jan.nijtmans f2f41b4b85 Merge 8.6 2023-05-15 11:45:42 +00:00
jan.nijtmans db43c8cbed One more ckalloc -> attemptckalloc (in compat/waitpid.c), since we can handle the error. 2023-05-15 11:43:15 +00:00
jan.nijtmans 062f4d0529 ckalloc -> attemptckalloc (since return-value is checked). Fix bug in unix/dltest/pkgooa.c, where last NULL-argument was missing 2023-05-15 11:15:28 +00:00
pooryorick 48d6b3d84c Rename TclRelaxRefCount() to TclUndoRefCount(). 2023-05-14 08:21:50 +00:00
pooryorick aafa141509 Add TclRelaxRefCount, and also try to take the fast path more often in byte-compiled [lindex]. 2023-05-13 10:59:32 +00:00
pooryorick d6ed36f134 In tclExecute.c call DECACHE_STACK_INFO() before calling TclLindexList(). 2023-05-12 23:20:26 +00:00
dgp 364d782f34 merge trunk 2023-05-12 12:08:45 +00:00
jan.nijtmans 889eae38ab Merge 9.0 2023-05-12 09:34:15 +00:00
jan.nijtmans 14d2bc5415 Merge 8.7 2023-05-12 08:57:00 +00:00
jan.nijtmans 36cebb89fe Use 'attempt'-functions for libtommath, when built into Tcl 2023-05-11 22:20:17 +00:00
pooryorick 4fa1fa29ae Fix failing valgrind suppression for load.test 2023-05-11 17:17:18 +00:00
pooryorick 6fbc88e2a0 Silence valgrind "still reachable" report in cmdAH.test 2023-05-11 17:07:39 +00:00
jan.nijtmans 87ff0e4ee2 put back pragma voor MSVC warning, accidently removed in previous commit 2023-05-11 15:39:30 +00:00
jan.nijtmans 847fdd28f7 Restore warning-free compilation with C++ compiler 2023-05-11 15:30:18 +00:00
pooryorick 01e71bb26c Fix Valgind report of still reachable blocks in aaa_exit.test and other test
files.
2023-05-11 13:08:59 +00:00
jan.nijtmans e64032233b Rebase to latest 9.0 2023-05-11 11:46:17 +00:00
jan.nijtmans ce00b07d6b disable on-purpose compiler warning (MSVC) for testcase 2023-05-11 06:31:49 +00:00
jan.nijtmans 033b9b2914 Merge 8.7 2023-05-11 06:23:44 +00:00
apnadkarni 363a6cc4cd Refactor allocation strategy in Tcl_DStringAppend 2023-05-10 21:32:16 +00:00
jan.nijtmans 180af1f9a5 Merge 8.7 2023-05-10 20:53:49 +00:00
jan.nijtmans c03808607b Backport various changes from 9.0 branch 2023-05-10 19:39:20 +00:00
dgp 6c604517d7 TIP 663 implementation 2023-05-10 18:28:30 +00:00
apnadkarni 6802927d5c Merge trunk 2023-05-10 17:25:47 +00:00
jan.nijtmans b8ac435e96 Rebase to latest 8.7 2023-05-10 15:37:12 +00:00
dgp 82b6650a44 merge trunk 2023-05-10 13:24:16 +00:00
jan.nijtmans c0c0164a71 Merge 8.6 2023-05-10 12:28:06 +00:00
jan.nijtmans 284a501487 Backport: docs: function does not "return an error", it returns TCL_ERROR, indicating an error occured 2023-05-10 12:09:07 +00:00
bch 909827f9ee docs: function does not "return an error", it returns TCL_ERROR, indicating an error occured 2023-05-09 22:36:38 +00:00
jan.nijtmans fc3837a30a merge-mark 2023-05-09 16:14:04 +00:00
jan.nijtmans 293c1ff559 Left-over TCL_ENCODING_STRICT, not used any more.
Add "-profile tcl8" for testcases which don't work in strict profile
2023-05-09 16:11:58 +00:00
griffin 7b647d920a merge trunk 2023-05-09 15:58:53 +00:00
jan.nijtmans 6701945b81 Merge 9.0 2023-05-09 15:43:04 +00:00
jan.nijtmans e95d2eea7f Merge 8.7 2023-05-09 13:16:25 +00:00
dgp 8a4b64b4aa merge trunk 2023-05-09 13:07:37 +00:00
jan.nijtmans 2e02e1affd Remove useless type-casts. Backport some changes from 9.0 2023-05-09 13:06:02 +00:00
jan.nijtmans 77b454d1b2 size_t -> Tcl_Size (twice) 2023-05-09 09:51:47 +00:00
jan.nijtmans 187ebe55a0 Merge 9.0 2023-05-09 06:25:29 +00:00
jan.nijtmans 05c2702c68 Fix compilation with -DTCL_NO_DEPRECATED 2023-05-08 20:37:55 +00:00
jan.nijtmans 8f15f09491 Fix [96551aca55]: Avoid pointer arithmetic with NULL in FOREACH_STRUCT(). Some typo's 2023-05-08 14:19:04 +00:00
pooryorick 8d076e6525 Make TclLindexFlat() a litle more straightforward. 2023-05-08 14:08:44 +00:00
jan.nijtmans 133b43a521 Better version, keeping the (undocumented) behavior of 'i' initialization 2023-05-08 13:43:56 +00:00
pooryorick af5bfc68cc Use Tcl_Size instead of size_t in two places in TclIndexEncode. 2023-05-08 11:35:45 +00:00
jan.nijtmans 0d8a08dbf1 Proposed fix for [96551aca55]: Avoid pointer arithmetic with NULL in FOREACH_STRUCT() 2023-05-08 09:35:57 +00:00
jan.nijtmans 1a4e52416f Merge 8.7. Restore Tcl_DStringSetLength() behavior, as suggested in [3837178c25] 2023-05-07 20:34:18 +00:00
jan.nijtmans 4dcdd51adb Merge 8.7 2023-05-07 20:10:58 +00:00
jan.nijtmans 73dbbaaa23 New testcase, contributed by @chrstphrchvz. Many thanks! See [3837178c25] 2023-05-07 20:06:50 +00:00
jan.nijtmans b3a66db1b4 Merge 9.0 2023-05-07 19:53:40 +00:00
jan.nijtmans 301c2624cd Merge 8.7 2023-05-05 22:22:47 +00:00
jan.nijtmans d162c9a16d Merge 8.7 2023-05-05 21:22:29 +00:00
jan.nijtmans ce9f04ddd1 Merge 8.6 2023-05-05 21:16:27 +00:00
jan.nijtmans 8f269fcad1 Update .github files 2023-05-05 21:07:47 +00:00
jan.nijtmans 67b780c161 Remove .github and .travis-related stuff: No need to build this branch any more 2023-05-05 20:55:31 +00:00
pooryorick f4cd60dbb4 A few corrections in comments. 2023-05-05 14:57:38 +00:00
apnadkarni d0ba759e2c Merge trunk 2023-05-05 12:36:45 +00:00
apnadkarni 3f84674ae3 Merge 8.7 - list performance tests 2023-05-05 12:35:21 +00:00
apnadkarni 4e92d998eb Minor fixes for perf tests 2023-05-05 12:34:18 +00:00
pooryorick 3e05a7babe Remove TclArithSeriesObjCopy() and use Tcl_DuplicateObj() instead. 2023-05-05 09:40:38 +00:00
apnadkarni 5940356ced Change reallocation growth to 1.5. 2023-05-05 09:17:17 +00:00
jan.nijtmans 91c305a5f3 Remove more ... to be split off in separate TIP's 2023-05-05 06:18:55 +00:00
pooryorick cc71607cb8 Make some tests select an encoding profile instead of relying on the default. 2023-05-04 20:26:19 +00:00
jan.nijtmans 83776b137b Tcl_InputEncodingError() -> TclInputEncodingError. It will be split off in a separate TIP 2023-05-04 19:53:44 +00:00
dgp 405a099384 merge 8.7 2023-05-04 18:22:37 +00:00
dgp 1ea2b16a8d merge 8.6 2023-05-04 18:21:49 +00:00
dgp f976a32c62 Remove mention of Tcl_GlobalEval() from comment. 2023-05-04 18:21:01 +00:00
apnadkarni 92dd14e77c Refactor reallocation in preparation for experimentation with different growth factors 2023-05-04 17:52:06 +00:00
dgp 573b5764d0 merge trunk 2023-05-04 14:45:23 +00:00
jan.nijtmans 4ae09b6572 Merge 9.0 2023-05-04 13:27:36 +00:00
jan.nijtmans 4f20ba2206 Merge 9.0 2023-05-04 13:22:37 +00:00
jan.nijtmans 3f2bb8a029 Merge 8.7 2023-05-04 13:06:15 +00:00
jan.nijtmans e51f7da2ee Backport: Do not build every branch. Too expensive. 2023-05-04 12:58:41 +00:00
jan.nijtmans af320fb41e Fix [9c397da4a9]: AppendPrintfToObjVA(): support 64-bit pointers 2023-05-04 12:53:45 +00:00
dkf e2f55284cf Do not build every branch. Too expensive. 2023-05-04 08:24:01 +00:00
jan.nijtmans 6470e343a8 Rebase to latest 8.7 2023-05-04 06:50:48 +00:00
jan.nijtmans cb008d57c8 Some int -> Tcl_Size. Remove unnecessary knownBug constraint 2023-05-04 06:44:22 +00:00
jan.nijtmans 32ef665a1f Rebase to latest 9.0 2023-05-04 06:38:34 +00:00
jan.nijtmans 8b67593cb6 Rebase to latest 8.7 2023-05-04 06:36:10 +00:00
jan.nijtmans cb8674cf35 Rebase to latest 9.0 2023-05-04 06:32:25 +00:00
apnadkarni 8a45e47c4c Merge trunk 2023-05-04 05:12:11 +00:00
apnadkarni 4dd7110019 Better fallback on list reallocation failure 2023-05-04 04:48:31 +00:00
jan.nijtmans 66f0b0940a Remove unused TclMethodIsType() 2023-05-03 14:56:13 +00:00
jan.nijtmans e1d323bc1b TIP #666 implementation 2023-05-03 14:47:37 +00:00
apnadkarni 688c125ec3 Fix bug-c9663296fd (in progress) 2023-05-03 13:18:05 +00:00
jan.nijtmans e808862660 Merge 9.0 2023-05-03 09:20:21 +00:00
jan.nijtmans 299297e8d3 Merge 9.0 2023-05-03 07:04:31 +00:00
jan.nijtmans 5161ec3c71 Merge 9.0 2023-05-03 07:03:51 +00:00
griffin 9aac3677ed merge trunk 2023-05-03 02:01:11 +00:00
jan.nijtmans b593cd6f66 Merge 9.0 2023-05-02 16:43:56 +00:00
jan.nijtmans e617c72f60 Make windows OPTS=symbols build work 2023-05-02 15:31:25 +00:00
apnadkarni 1f5d09b497 Fix LISTREP_ASSERT 2023-05-02 11:50:03 +00:00
apnadkarni eb23b011d0 Merge trunk 2023-05-02 11:28:55 +00:00
jan.nijtmans bfa85bed3d Rebase to latest 9.0 2023-05-02 06:28:13 +00:00
apnadkarni 694c4505cd Change realloc strategy on fail, optimize for empty string 2023-05-02 05:38:04 +00:00
jan.nijtmans 5ff9320371 More progress 2023-05-01 20:28:44 +00:00
jan.nijtmans 190852002f Remove internal use of TCL_UTF_MAX=3 as much as possible, without compromizing existing TIP's 2023-05-01 19:42:53 +00:00
dkf fea912c676 Remove IDE guff 2023-05-01 15:08:08 +00:00
dkf 7555420166 Add doc comments, fix a typo in a manpage 2023-05-01 14:07:59 +00:00
dkf 10c71dc8b9 Use modern copyright symbol, in line with rest of code 2023-05-01 13:31:30 +00:00
dkf 530e4b3bb9 Merge 8.7 2023-05-01 13:22:24 +00:00
griffin ca58c3ae9a Partial sync-up with trunk. 2023-04-30 23:09:13 +00:00
dgp e512b44224 merge trunk 2023-04-28 13:06:58 +00:00
jan.nijtmans 23a193d798 Alternative to TIP #661: Modify the macro's such that compiler warnings are generated when using 'int' in stead of 'Tcl_Size'. But - still - everything works. 2023-04-27 15:01:24 +00:00
dgp 913119732a merge trunk 2023-04-26 13:01:28 +00:00
dgp ebffee5129 merge trunk 2023-04-24 14:23:28 +00:00
dgp cea697edb6 merge trunk 2023-04-24 13:49:52 +00:00
jan.nijtmans cdf2e470a4 Merge 9.0 2023-04-23 22:20:58 +00:00
jan.nijtmans 5f0bb1af5c Merge 9.0 2023-04-23 22:18:15 +00:00
jan.nijtmans ce6af05487 Merge 9.0 2023-04-23 20:49:57 +00:00
pointsman ca64cf32c9 Merge trunk. 2023-04-23 11:23:05 +00:00
jan.nijtmans fe77293e49 Merge 9.0 2023-04-23 09:46:54 +00:00
jan.nijtmans 13e1b59af5 Merge 9.0 2023-04-23 09:21:34 +00:00
jan.nijtmans 05e1eca301 Merge 9.0 2023-04-21 21:31:25 +00:00
dgp 0668565df4 merge trunk 2023-04-21 15:22:33 +00:00
jan.nijtmans c32b5a7274 Merge 9.0 2023-04-21 13:32:45 +00:00
pointsman 0a6ec5e775 Merged apn-disabletcl8api-warnings 2023-04-21 10:48:48 +00:00
pointsman 534ac5196d Updated disabletcl8api to post TIP 660. Changed the default while doing that. Now, without related configure option the tcl core will build without the compatibility macros (which also hides other type problems). To build the core with the complatibility macros configure with --enable-tcl8api. Jan claimed that with [fc9c3d7c3e009] disabledtcl8api was added to trunk but while I confess I didn't fully understand Jan changed the mechnism and missed to disables the tip 616 API functions. 2023-04-21 00:42:46 +00:00
jan.nijtmans 5744713167 Merge 9.0 2023-04-20 16:53:29 +00:00
jan.nijtmans e01f2fdd89 Merge 9.0 2023-04-18 21:24:13 +00:00
jan.nijtmans 9e82399a14 Merge 9.0 2023-04-18 21:05:38 +00:00
jan.nijtmans 7c0ef33b23 Merge 9.0 2023-04-18 15:47:33 +00:00
jan.nijtmans ca3c6da4dd Merge 9.0 2023-04-17 18:56:00 +00:00
jan.nijtmans e335d34357 Merge 9.0 2023-04-17 18:53:50 +00:00
dgp 001a6f1046 merge trunk 2023-04-17 18:31:28 +00:00
jan.nijtmans 337ab3f387 Merge 9.0 2023-04-15 21:14:50 +00:00
jan.nijtmans 5fdb735dde Merge 9.0 2023-04-14 09:12:58 +00:00
jan.nijtmans 4d44b91a10 Merge 9.0 2023-04-14 07:03:22 +00:00
jan.nijtmans c43d7064eb Merge 9.0 2023-04-12 22:41:14 +00:00
dgp 5505e85321 merge trunk 2023-04-06 12:30:50 +00:00
jan.nijtmans 3e8b4007cf Merge 9.0 2023-04-05 15:56:33 +00:00
jan.nijtmans 8dbddcbec0 Merge 9.0 2023-04-04 22:48:32 +00:00
jan.nijtmans 4a2c1f7441 Merge 9.0 2023-04-04 22:37:01 +00:00
dgp a70e30819e merge trunk 2023-04-03 14:34:28 +00:00
jan.nijtmans 93cc703cc9 Remove TCL_ENCODING_PROFILE_DEFAULT, since it isn't documented and is not used anywhere. 2023-04-01 15:09:11 +00:00
jan.nijtmans f923b422e9 Merge 9.0 2023-04-01 15:04:41 +00:00
jan.nijtmans d7b76b5c91 Merge trunk 2023-04-01 15:03:17 +00:00
jan.nijtmans dde32ee5aa Merge 9.0 2023-04-01 10:30:26 +00:00
jan.nijtmans 2a8ae1943e Merge 9.0 2023-04-01 08:42:01 +00:00
jan.nijtmans f15033c5dd Merge 9.0 2023-03-31 22:10:19 +00:00
jan.nijtmans 4f5c603784 Rebase to 9.0 2023-03-31 22:05:31 +00:00
jan.nijtmans 0758324455 Merge 9.0 2023-03-30 22:27:40 +00:00
jan.nijtmans cef495763e Merge 9.0 2023-03-30 22:24:21 +00:00
jan.nijtmans 812c3e3103 Rebase to 9.0 2023-03-28 15:54:21 +00:00
jan.nijtmans aa00ed70ea Merge 9.0 2023-03-28 14:34:31 +00:00
jan.nijtmans 84a0e08557 Patch from chrstphrchvz, fixing [d40b9c8503]. Many thanks! 2023-03-26 15:51:21 +00:00
griffin 879e7b7112 Merge trunk 2023-03-25 00:29:59 +00:00
jan.nijtmans 2ffd05e703 documentation update 2023-03-23 17:31:37 +00:00
jan.nijtmans de5eea858b Merge 9.0 2023-03-23 16:15:51 +00:00
jan.nijtmans 76b980b1d8 Merge 9.0 2023-03-22 21:18:20 +00:00
jan.nijtmans 1ad604bcbe Merge 9.0 2023-03-22 21:17:48 +00:00
jan.nijtmans 9d3a432631 Merge 9.0 2023-03-22 20:14:33 +00:00
jan.nijtmans 3eefce40b9 Merge 9.0 2023-03-22 20:13:46 +00:00
jan.nijtmans 53b6569f4a Merge 9.0 2023-03-22 19:40:45 +00:00
jan.nijtmans 2410f4ec9d Merge 9.0 2023-03-22 19:32:33 +00:00
jan.nijtmans 5761d7e651 Merge 9.0 2023-03-22 15:27:51 +00:00
jan.nijtmans ea9abbf7ea Merge 9.0 2023-03-22 08:34:54 +00:00
jan.nijtmans 34ecddb610 exchange profile <-> eofchar output in "fconfigure". Fix some testcases, which depend on profile 2023-03-21 17:47:33 +00:00
jan.nijtmans 9291cbb6cf Merge 9.0 2023-03-21 17:21:33 +00:00
jan.nijtmans e1d146e4c9 Merge 9.0 2023-03-21 16:55:01 +00:00
jan.nijtmans 27a050c727 Merge 9.0 2023-03-21 09:22:18 +00:00
jan.nijtmans 595ac97f37 Merge 9.0 2023-03-20 14:32:01 +00:00
jan.nijtmans 94dfe61832 Merge 9.0 2023-03-20 14:30:42 +00:00
jan.nijtmans 3cc7a1e953 Merge 9.0. Backout previous commit 2023-03-19 12:02:11 +00:00
jan.nijtmans 47b758fa50 Merge 9.0 2023-03-19 11:58:43 +00:00
jan.nijtmans afc494390f Merge 9.0 2023-03-19 11:46:38 +00:00
jan.nijtmans 0625218c85 See if less "-profile replace" suffices 2023-03-18 13:36:10 +00:00
jan.nijtmans 381a18837e Merge 9.0 2023-03-18 09:15:20 +00:00
jan.nijtmans 219cbfee38 Merge 9.0 2023-03-18 09:10:24 +00:00
jan.nijtmans 59a954a7ae Merge 9.0 2023-03-18 08:57:48 +00:00
jan.nijtmans 5fe5ad497b Merge 9.0 2023-03-17 20:23:22 +00:00
jan.nijtmans 7a34b9758d Merge 9.0 2023-03-17 19:48:32 +00:00
jan.nijtmans b6ccec9b3f Don't reset CHANNEL_ENCODING_ERROR here, otherwise Tcl_InputEncodingError() will give wrong result 2023-03-16 21:03:28 +00:00
jan.nijtmans 5e75946997 Merge tip-656-tcl9 2023-03-16 20:35:40 +00:00
jan.nijtmans 0494380d8a Merge tip-656-tcl9 2023-03-16 10:24:24 +00:00
jan.nijtmans 3ac0d72dd6 Allow -encoding to be shortened (again) 2023-03-16 08:22:35 +00:00
jan.nijtmans 4ea3b1ce77 merge-mark (this branch already did the -encodingprofile -> profile change) 2023-03-16 08:20:19 +00:00
jan.nijtmans ef949221f5 Merge tip-656-tcl9 2023-03-14 20:55:52 +00:00
jan.nijtmans d023df8623 Implement return options for read/gets 2023-03-14 20:24:27 +00:00
jan.nijtmans 362a0e8ba6 Adapt more test expectation (since the default is now -profile strict) 2023-03-13 17:24:22 +00:00
jan.nijtmans e36b69fb4d Merge tip-656-tcl9. Mark xx-bufferoverflow as knownBug 2023-03-13 17:05:14 +00:00
jan.nijtmans c43f6e9701 More utf-16 bugfixing 2023-03-12 13:45:51 +00:00
jan.nijtmans a71ab1a3ea Merge tip-656-tcl9 2023-03-12 12:11:02 +00:00
jan.nijtmans f5bd004df9 Make testcase io-53.5 independant on system encoding 2023-03-12 11:51:17 +00:00
jan.nijtmans 9e4ce6c3b9 Fix last (hopefully) bugs in utf-16/utf-32 encoders 2023-03-11 21:19:46 +00:00
jan.nijtmans 5e73d72846 Merge tip-656-tcl9 2023-03-10 16:02:27 +00:00
jan.nijtmans 6e644e2a60 Implement new function Tcl_InputEncodingError() 2023-03-10 15:55:51 +00:00
jan.nijtmans 2ff0d1c5c1 Bug-fix for Utf32ToUtfProc, in case TCL_UTF_MAX=3 2023-03-09 16:20:30 +00:00
jan.nijtmans 5669c89824 Oops 2023-03-08 22:04:09 +00:00
jan.nijtmans 8b4325141a Merge tip-657-tcl9. Further implementation of Tcl_GetObj() et al. 2023-03-08 21:49:11 +00:00
jan.nijtmans 7cd1f95dff Merge 9.0 2023-03-08 20:53:19 +00:00
jan.nijtmans 716757e45f Merge tip-657-tcl9. Add "-profile tcl8" to http.tcl 2023-03-08 09:52:06 +00:00
jan.nijtmans 0eaea8713d encodingprofile -> profile, and fix more testcases 2023-03-07 23:11:17 +00:00
jan.nijtmans f562be24c3 Start implementing TIP #657. WIP 2023-03-07 21:01:32 +00:00
jan.nijtmans d07f2367e5 Merge 9.0 2023-03-07 18:23:48 +00:00
dgp 2cf4fcfc95 merge trunk 2023-03-06 15:23:47 +00:00
jan.nijtmans 0a7f80e4bc Merge 9.0 2023-03-06 10:31:31 +00:00
jan.nijtmans 8736241841 Merge 9.0 2023-03-05 22:01:45 +00:00
jan.nijtmans 0d2ffb1ea7 Merge 9.0 2023-03-05 20:46:32 +00:00
jan.nijtmans 95c73abd20 Merge 9.0 2023-03-05 00:43:34 +00:00
dgp cf1842b472 merge trunk 2023-03-03 14:02:30 +00:00
dgp 81af96660c merge trunk 2023-03-02 14:21:21 +00:00
jan.nijtmans 8c902f559c Merge 9.0 2023-03-02 12:30:01 +00:00
dgp 4341a8d669 merge trunk 2023-02-27 13:28:29 +00:00
dgp 917a67bc11 merge trunk 2023-02-24 14:52:04 +00:00
dgp 013a1cbc75 merge trunk 2023-02-22 15:21:18 +00:00
jan.nijtmans bfa50867f7 Merge 9.0 2023-02-15 08:10:41 +00:00
dgp 87cf4525a2 merge trunk 2023-02-13 14:29:35 +00:00
dgp d14e9d9b1f merge trunk 2023-02-03 13:25:03 +00:00
dgp 06d5525b12 merge trunk 2023-02-01 14:23:21 +00:00
dgp deac2b4748 merge trunk 2023-01-30 16:50:36 +00:00
dgp fcfc62699a merge trunk 2023-01-27 14:01:24 +00:00
jan.nijtmans 44fbf6e9de Merge 9.0 2023-01-25 17:11:58 +00:00
dgp 87f9abf511 Bump to 9.0b1 for release 2023-01-24 18:06:02 +00:00
jan.nijtmans c7f70ba9aa Merge 9.0 2023-01-19 15:04:15 +00:00
jan.nijtmans ef7bbf24e8 code cleanup (reduce diff with trunk) 2022-12-24 09:11:56 +00:00
jan.nijtmans 4531aa608d Merge 9.0 2022-12-22 16:17:57 +00:00
jan.nijtmans 986984210d Merge 9.0 2022-12-21 23:05:53 +00:00
griffin bc3ff73062 Make as much abstract list implementation as possible internal.
Other code cleanup also.
2022-12-21 06:59:38 +00:00
jan.nijtmans a3f8bc6993 Merge 9.0. Now really make dist tests working (again) on Windows/gcc 2022-12-20 10:58:06 +00:00
jan.nijtmans bc7cadbfec Merge 9.0. Make dist tests working (again) on Windows/gcc 2022-12-20 07:24:42 +00:00
jan.nijtmans ab239a3b1f Merge 9.0 2022-12-18 21:38:14 +00:00
jan.nijtmans 7157c6b878 Reserve a place in abstractlist for an additional function 2022-12-18 10:05:40 +00:00
jan.nijtmans 0cdcbf3481 Merge 9.0 2022-12-18 09:10:25 +00:00
jan.nijtmans 9006753369 Merge 9.0. Fix testcases 2022-12-08 14:24:20 +00:00
griffin 6b52bc1a64 Add 'getdouble' function to ObjType, used for abstractlist types. -- Experimental 2022-12-07 23:56:10 +00:00
jan.nijtmans c100a997e8 Merge 9.0 2022-12-07 17:09:16 +00:00
jan.nijtmans 9373f24f80 Merge 9.0 2022-12-02 11:37:00 +00:00
jan.nijtmans 3836fc2905 Code cleanup (undo some unnecessary changed compared to trunk) 2022-12-01 15:57:20 +00:00
jan.nijtmans 01f2b842e8 Merge 9.0. Fix Windows build (testcases need tcl::test package). Modify TCL_OBJTYPE_V1() macro, so it checks for the number of arguments 2022-12-01 15:16:37 +00:00
jan.nijtmans 0d93399127 Merge 9.0 2022-12-01 14:23:55 +00:00
griffin b22a59093e Fix bug with slice (range) operation 2022-12-01 02:10:32 +00:00
jan.nijtmans f101fd4d8b Merge 9.0. Rename TclObjTypeHasProc to ABSTRACTLIST_PROC 2022-11-30 22:05:52 +00:00
jan.nijtmans bacd42baab Merge 9.0 2022-11-30 11:13:47 +00:00
jan.nijtmans 4a8099f371 Merge 9.0 (but without the "llength" optimization) 2022-11-30 10:46:57 +00:00
jan.nijtmans 5f45d1454b Merge 9.0 2022-11-29 10:38:49 +00:00
jan.nijtmans b1ee845c02 Merge 9.0 2022-11-29 09:53:43 +00:00
jan.nijtmans 64383b33bd Simplify TclObjTypeHasProc() (a lot!) 2022-11-28 21:45:49 +00:00
jan.nijtmans 2aa92d31a0 Merge 9.0 2022-11-28 16:13:34 +00:00
jan.nijtmans c505d87cb0 Merge 9.0 2022-11-25 10:15:45 +00:00
jan.nijtmans feee6ec002 Merge 9.0 2022-11-25 10:14:57 +00:00
jan.nijtmans b22f30259b TCL_OBJTYPE_V0_INIT -> TCL_OBJTYPE_V0 (See TIP #644). Remove Tcl_SavedResult (See TIP #640) 2022-11-24 21:48:42 +00:00
jan.nijtmans ec8855a10b Merge 9.0 2022-11-24 21:16:54 +00:00
griffin 85ff1f33c9 Sync with trunk 2022-11-24 20:31:05 +00:00
jan.nijtmans 6d270f2533 Merge 9.0 2022-11-24 14:38:38 +00:00
griffin a4e76a1c02 Sync with trunk 2022-11-24 03:32:46 +00:00
griffin 7b6d022905 Support multiple indicies in abstract list lindex operation.
Catch up with trunk.
2022-11-24 01:18:36 +00:00
jan.nijtmans 518268c7f6 Merge 8.7 2022-11-23 21:12:52 +00:00
jan.nijtmans 62077a6bd1 Rebase to 8.7 2022-11-21 23:58:15 +00:00
jan.nijtmans 2f3087ea8f Rebase to latest 8.7 2022-11-20 20:18:08 +00:00
jan.nijtmans b1e00491cf Merge 9.0 2022-11-19 16:29:09 +00:00
jan.nijtmans aaf5bcb043 Use mp_pack in tclLink.c 2022-11-18 20:11:08 +00:00
jan.nijtmans 03fab894a0 Add mp_pack/mp_pack_count to libtommath stub table 2022-11-18 20:08:24 +00:00
jan.nijtmans ba25919a60 Merge 8.7 2022-11-15 14:41:03 +00:00
jan.nijtmans da87c00e5a Merge 9.0 2022-11-13 21:46:49 +00:00
jan.nijtmans c7ea989512 Merge 8.7 2022-11-13 17:11:37 +00:00
jan.nijtmans 3c61afae67 Fix panic message 2022-11-11 22:48:53 +00:00
jan.nijtmans 0a5df8ec7f Fix for Tcl_SetWideUIntObj 2022-11-11 22:26:03 +00:00
jan.nijtmans 9a97fdffa8 Merge 8.7 2022-11-11 22:06:14 +00:00
jan.nijtmans ee898100a1 Tcl_NewSizeObj -> Tcl_NewIndexObj 2022-11-10 17:44:56 +00:00
jan.nijtmans 29f4c762f2 Update doc 2022-11-10 17:28:15 +00:00
jan.nijtmans 9dd0e90048 If value is out-of-range (e.g. on 32-bit system >= 2^32-1), Tcl_NewSizeObj() will result in a '-1' object as well 2022-11-10 15:21:13 +00:00
jan.nijtmans 3b7f710d06 New functions Tcl_NewSizeObj/Tcl_SetSizeObj 2022-11-09 22:18:01 +00:00
jan.nijtmans 44c5cd1753 Merge 8.7 2022-11-08 22:34:37 +00:00
jan.nijtmans 7135e1109c Merge 9.0 2022-11-08 22:33:30 +00:00
griffin 4335a4f475 Remove unused/incomplete functions. Some cleanup. 2022-11-08 22:02:33 +00:00
jan.nijtmans bc8d116914 Merge 9.0 2022-11-08 20:54:00 +00:00
jan.nijtmans e3bc7a0dc9 Trace.level from int -> size_t 2022-11-08 15:38:02 +00:00
jan.nijtmans 3f933695ab Merge 8.7 2022-11-08 10:03:43 +00:00
jan.nijtmans 31dd4f4dde Merge 9.0 2022-11-08 10:02:32 +00:00
jan.nijtmans 7b847a62f0 Merge 8.7 2022-11-08 07:34:30 +00:00
jan.nijtmans 199d60e691 Merge 9.0 2022-11-08 07:32:18 +00:00
jan.nijtmans b4a8e96ef3 Merge 9.0 2022-11-07 22:23:51 +00:00
jan.nijtmans 9da038eb4a Merge 9.0 2022-11-07 21:21:09 +00:00
jan.nijtmans b509bb3fb3 Update Tcl_Filesystem documentation 2022-11-06 11:45:13 +00:00
jan.nijtmans 8a1c2d84b5 Rebase TIP #626 to latest 9.0. Change Tcl version number from 9.0 to 9.1a0 2022-11-06 11:19:21 +00:00
griffin 3e26e1b26d Sync with trunk 2022-11-06 05:20:26 +00:00
griffin 93374294e8 Sync with trunk 2022-11-05 23:35:46 +00:00
griffin 44a73b3640 Implement abstractlist with tip-644 2022-11-04 22:47:23 +00:00
jan.nijtmans f3896e5187 New functions Tcl_NewWideUIntObj()/Tcl_SetWideUIntObj() (still experimental) 2022-11-04 11:11:18 +00:00
griffin 853e484a64 TIP 636 for Tcl 9 2022-11-02 22:33:01 +00:00
griffin e2e526bea8 Swap which ObjTyp ptr is used for concrete Rep to match other types. 2022-11-02 16:45:47 +00:00
griffin c5bb0bc339 Sync with core-8-branch 2022-11-01 03:18:39 +00:00
griffin 028b789aec Add missing GetType call to export decls. Change SetElement to support multiple indicies. Improve abstract list test coverage. 2022-10-31 21:50:46 +00:00
griffin bb6cdd342a Sync with core-8-branch 2022-10-28 18:53:27 +00:00
griffin a89453a9e9 Expand AbstractList regression testing. 2022-10-28 06:13:11 +00:00
griffin 119e80fb28 Sync with core-8-branch 2022-10-25 02:30:28 +00:00
griffin 6d3452eeac Add AbstractList regression test (exercise the C API) 2022-10-25 01:13:45 +00:00
griffin e38c5076fe Sync with core-8-branch 2022-10-22 21:13:54 +00:00
griffin 6f1b4d55a4 Add Replace (lreplace) function to AbstractList type, and corrisponding Tcl_AbstractListObjReplace() API. 2022-10-22 00:07:40 +00:00
griffin 8b7cf2c7eb Sync with core-8-branch 2022-10-19 22:29:46 +00:00
griffin 0bc040dc40 More work on lset support in AbstractLists 2022-10-19 04:35:15 +00:00
griffin fb722eca56 Add SetElement function to abstract lists. Fix a few bugs. 2022-10-18 01:03:19 +00:00
griffin 699ec9db36 Sync with core-8-branch 2022-10-14 22:35:01 +00:00
griffin f72344d643 Update AbstractList man page. 2022-10-14 22:06:42 +00:00
griffin 999de87fbf Sync with core-8-branch 2022-10-12 21:16:12 +00:00
griffin 48ae5e307e Modify AbstractList functions to include interp for error reporting. Other various improvements. 2022-10-11 03:49:20 +00:00
apnadkarni 80303ffb39 Generalize UpdateStringOfAbstractList 2022-10-09 06:21:43 +00:00
griffin 7468d97286 Code cleanup and reorganize 2022-10-08 22:31:32 +00:00
griffin d24ee59fb5 TIP #636 starting imiplementation. 2022-10-08 04:28:55 +00:00
griffin f2fd360d01 Sync with core-8-branch 2022-10-08 02:39:41 +00:00
griffin af613a176f Sync with core-8-branch 2022-10-07 19:14:18 +00:00
griffin 9ed6390f05 Remove redundant file references in makefiles 2022-09-30 18:33:34 +00:00
griffin 259828fa5f Sync with core-8-branch 2022-09-29 13:45:46 +00:00
jan.nijtmans 61b19c386b Merge 9.0 2022-09-29 10:36:48 +00:00
jan.nijtmans 528b7b7168 Merge 8.7 2022-09-28 14:08:05 +00:00
jan.nijtmans 1462a54867 Merge 9.0 2022-09-28 14:07:29 +00:00
jan.nijtmans 14d10154ce Merge 9.0 2022-09-27 13:41:32 +00:00
jan.nijtmans 0fbdd463cb Merge 8.7 2022-09-27 13:39:16 +00:00
jan.nijtmans dd1dc3c6e8 Merge 8.7 2022-09-26 19:26:11 +00:00
jan.nijtmans 6a2fb4641d Merge 9.0 2022-09-26 15:06:14 +00:00
jan.nijtmans 4a3c559932 rebase to latest 8.7 2022-09-22 12:50:32 +00:00
jan.nijtmans 8af55ad2c4 Merge 9.0 2022-09-19 19:47:44 +00:00
jan.nijtmans cc185b1d76 eliminate some compiler warnings 2022-09-19 11:50:31 +00:00
jan.nijtmans 2ef45b0593 rebase to 8.7 2022-09-19 11:14:50 +00:00
jan.nijtmans ed9a3dc52f Put back original TclGetObjInterpProc() 2022-09-18 21:11:46 +00:00
jan.nijtmans 8b1a146532 Merge 9.0 2022-09-13 16:11:42 +00:00
jan.nijtmans cac884046b forget about internal objProc/objClientData 2022-09-09 23:14:55 +00:00
jan.nijtmans a62d4c0961 Let InvokeObjectCommand() handle argc<0 2022-09-09 15:25:36 +00:00
jan.nijtmans 4c8147f3ed Remove TclInvokeObjectCommand from internal stubs table 2022-09-09 15:18:50 +00:00
jan.nijtmans 1d6096986d Merge 9.0 2022-09-09 14:53:11 +00:00
jan.nijtmans a60681c2f3 Mrge 8.7. Make it work with C++, adapt win/Makefile.in to make it build on Windows with gcc 2022-09-08 14:53:35 +00:00
jan.nijtmans 41e317089d Merge 9.0 2022-09-08 14:14:56 +00:00
jan.nijtmans f2d155da26 fix documentation 2022-09-08 11:02:55 +00:00
jan.nijtmans b9b527183a Merge 8.7 2022-09-07 13:26:09 +00:00
jan.nijtmans 269aac423c Merge 9.0 2022-09-07 07:48:40 +00:00
jan.nijtmans 4608658cf8 Merge 9.0 2022-09-04 20:07:29 +00:00
jan.nijtmans ac947d3cf3 Merge 9.0 2022-08-31 09:25:19 +00:00
jan.nijtmans a77eb843bd Rename TclGetObjInterpProc2 back to TclGetObjInterpProc 2022-08-30 16:18:20 +00:00
jan.nijtmans bea6a51ba7 Don't do CHECKS=nodep build on Windows 2022-08-30 10:15:21 +00:00
jan.nijtmans e72b7842e0 Make TclObjInvoke() MODULE_SCOPE too 2022-08-29 22:07:27 +00:00
jan.nijtmans c4940b3a03 Make TclObjInterpProc() MODULE_SCOPE 2022-08-29 21:59:54 +00:00
jan.nijtmans b51345a4ed when compiling with TCL_NO_DEPRECATED, remove objProc interfaces 2022-08-29 19:56:09 +00:00
jan.nijtmans 6ae5c8aa23 More int -> size_t 2022-08-29 13:43:16 +00:00
jan.nijtmans 56f5c97345 Merge 9.0 2022-08-29 11:54:00 +00:00
jan.nijtmans b2aa48b08d If both objProc2 and objProc are defined, prefer objProc2 2022-08-28 21:39:50 +00:00
jan.nijtmans 6af3bbdb48 Merge 9.0. More progress in TclOO handling 2022-08-28 20:54:41 +00:00
griffin 446587dc91 Missed change for Windows. 2022-08-28 00:45:40 +00:00
griffin 31c68fa4e7 Move all ArithSeries code to it's own file. Sync other changes wil TIP-629. 2022-08-28 00:10:13 +00:00
jan.nijtmans c48c8e6b84 Merge 9.0 2022-08-26 20:31:48 +00:00
jan.nijtmans 1652f9484a More progress 2022-08-26 15:29:14 +00:00
jan.nijtmans 0fb115135e merge-mark 2022-08-23 11:00:16 +00:00
jan.nijtmans 743cedb837 Merge 9.0 2022-08-23 10:58:36 +00:00
jan.nijtmans 836dbb11bd Merge 9.0 2022-08-22 16:26:12 +00:00
jan.nijtmans 1819debd34 Merge 9.0 2022-08-22 15:48:05 +00:00
griffin f9e3b4dd74 Reimplement AbstrctList type structure to simplify. fix various bugs. 2022-08-19 18:08:39 +00:00
griffin 8bf1d3fbf1 Fix memory leak. 2022-08-15 15:23:24 +00:00
griffin 298667e221 Fix UpdateString to handle general case. Fix bug with elements list. 2022-08-11 16:21:39 +00:00
griffin 129d7aee61 Fix memory leak with Tcl_AbstractListObjGetElements. 2022-08-10 17:28:09 +00:00
griffin 92f5f9afc6 Make AbstractListRepPtr part of the public API as Tcl_AbstractListRepPtr.
Fix bug with ArithSeries Reverse function.
2022-08-10 04:21:16 +00:00
apnadkarni f3b81a9854 Fix Windows Visual C++ build 2022-08-09 16:07:24 +00:00
griffin 7561d600a6 Add version number to AbstractList implementation. Make sure lsort and lreplace do not shimer their input argument. 2022-08-08 23:52:43 +00:00
griffin 7030b2b274 Abstract Lists (TIP-225) initial implementation. 2022-08-08 19:38:19 +00:00
jan.nijtmans b8db45bc4b TclInvokeStringCommand2 -> TclInvokeStringCommand 2022-07-06 10:39:06 +00:00
jan.nijtmans e29a6b5ee1 Merge 9.0 2022-07-05 21:57:28 +00:00
jan.nijtmans 984ff0cfb4 re-generate tclDate.c 2022-07-05 11:09:11 +00:00
jan.nijtmans 95a50eddf7 Merge 8.7 2022-07-05 10:59:11 +00:00
jan.nijtmans 545be46afc Merge 8.6 2022-07-05 10:51:41 +00:00
jan.nijtmans d6decf26d6 Merge 9.0 2022-06-23 15:01:16 +00:00
jan.nijtmans 209501f25e Merge 9.0 2022-06-23 14:05:57 +00:00
jan.nijtmans c89c7d0c8d Merge 9.0 2022-06-23 12:25:21 +00:00
jan.nijtmans b443cf382a Merge 9.0 2022-06-22 21:40:21 +00:00
jan.nijtmans 1055cb934c Merge 9.0 2022-06-20 21:55:26 +00:00
jan.nijtmans 36eb632717 Merge 9.0 2022-06-19 20:27:16 +00:00
jan.nijtmans 7cc98243bf Implement Tcl_NRCallObjProc() 2022-06-19 19:46:51 +00:00
jan.nijtmans 7d93c7c51f Merge 9.0 2022-06-15 12:25:56 +00:00
jan.nijtmans 6b326f6e30 Merge 9.0 2022-06-09 16:31:10 +00:00
jan.nijtmans 91ae7925a7 Merge 9.0 2022-06-08 12:40:57 +00:00
jan.nijtmans 1a428b80c2 No need for separate Tcl_ProcObjCmd2 2022-06-06 17:40:59 +00:00
jan.nijtmans 68d740f320 Code cleanup 2022-06-06 17:18:23 +00:00
jan.nijtmans 43358037e9 More progress 2022-06-05 23:08:55 +00:00
jan.nijtmans 3273e0a6d6 Merge tip-616 2022-06-03 14:50:36 +00:00
jan.nijtmans e7c0689f5c More progress 2022-06-03 13:26:07 +00:00
jan.nijtmans 19ce746b8a Merge tip-616 2022-06-02 16:19:02 +00:00
jan.nijtmans e55ccca7b1 Put back earlier (temprary) removed functions 2022-06-02 08:44:11 +00:00
jan.nijtmans 6b6e7c2e1f More progress 2022-06-01 20:17:08 +00:00
jan.nijtmans ecb0725970 Revert some more testcode to old API 2022-06-01 14:29:34 +00:00
jan.nijtmans 2d08017bdc Revert Dde/Registry extensions to old API 2022-06-01 13:56:11 +00:00
jan.nijtmans 84e694ead5 Implement Tcl_NRCreateCommand() 2022-05-31 16:20:43 +00:00
jan.nijtmans 281e3a02ea Merge tip-616 2022-05-31 13:34:39 +00:00
jan.nijtmans 51942f39f5 Update documentation 2022-05-31 10:24:08 +00:00
jan.nijtmans 2de227b470 bug-fix 2022-05-30 21:05:28 +00:00
jan.nijtmans 511c536af3 Further implementation attempt 2022-05-30 15:17:37 +00:00
jan.nijtmans acb1e35f75 Merge tip-616. More progress 2022-05-30 12:43:14 +00:00
jan.nijtmans 2ec73f5cfc Fix Windows build 2022-05-28 20:25:30 +00:00
jan.nijtmans 6f0e01d90a Prevent "switch" crash 2022-05-27 21:40:17 +00:00
jan.nijtmans 8ec9047eaf More progress 2022-05-27 13:43:35 +00:00
jan.nijtmans c367d0f59e More progress 2022-05-27 11:41:10 +00:00
jan.nijtmans 3894865e35 Merge tip-616. Fix 2 crashes. Fix Windows build 2022-05-27 09:53:25 +00:00
jan.nijtmans 465bdaec96 Many int-> size_t 2022-05-25 22:20:46 +00:00
jan.nijtmans f22ee68af2 Merge tip-616 2022-05-25 15:42:58 +00:00
jan.nijtmans 3f275e76b3 More progress 2022-05-25 15:09:47 +00:00
jan.nijtmans 4019544a72 Another try 2022-05-25 09:25:38 +00:00
jan.nijtmans 2e378d1fc1 Starting TIP #626 implementation. WIP, far from finished 2022-05-24 12:34:57 +00:00
jan.nijtmans a98200dcac Merge 8.7. Also fix [5ec9985a94]: testing sebres-8-7-clock-speedup-cr2 branch 2021-12-08 15:37:29 +00:00
jan.nijtmans 09eba46041 Merge 8.7 2021-12-08 12:11:53 +00:00
jan.nijtmans 064e99bfa3 Merge 8.6 2021-12-08 11:55:47 +00:00
jan.nijtmans b6ce0622a6 Merge 8.7 2021-11-01 16:28:15 +00:00
jan.nijtmans 2fb64b9f95 Merge 8.6 2021-09-24 13:25:28 +00:00
jan.nijtmans 00fc9b5939 Merge 8.7 2021-09-24 13:23:18 +00:00
dkf 136b650bda Added a basic portable test of [fconfigure -stat] 2021-07-13 19:53:38 +00:00
dkf 65b685deca Added documentation 2021-07-13 19:38:37 +00:00
jan.nijtmans 0865a0b6b0 Merge 8.7. Fix fstat() call in tclUnixChan.c, in case Tcl_StatBuf == struct stat64. 2021-06-29 15:02:53 +00:00
jan.nijtmans 79260bd695 Make tclWinChan.c compile again, fixing obvious implementation problems. Not tested if it actually works. 2021-06-29 08:54:19 +00:00
jan.nijtmans 1a062775d2 Fix iocmd-8.4 testcase 2021-06-28 12:32:35 +00:00
dkf a855be143c merge core-8-branch 2021-06-27 11:26:36 +00:00
dkf 5e07595538 First attempt at Windows implementation.
I don't develop on that platform, so this is extra dodgy!
2021-06-19 20:19:49 +00:00
dkf 5ed49bbc61 Added in missing field 2021-06-19 15:57:41 +00:00
dkf fa0c0e6134 Start of implementing TIP 603: chan configure -stat 2021-06-19 14:59:05 +00:00
jan.nijtmans 9dd933ddbd Merge 8.7 2021-02-23 14:01:41 +00:00
jan.nijtmans 7c9cba68ef Merge 8.6 2021-02-23 13:31:51 +00:00
jan.nijtmans 5c17bbd979 Undo previous experiment, instead use real solution from core-8-branch 2021-02-23 07:52:46 +00:00
jan.nijtmans a743e303af merge-mark 2021-02-23 07:44:55 +00:00
jan.nijtmans 888ce88c14 Fix one more usage of getenv() on Windows 2021-02-22 15:45:09 +00:00
jan.nijtmans 6caf322057 Better solution for msvc OPTS=static,msvcrt regression: On win32 we cannot thrust the getenv() function, so use _wgetenv() 2021-02-22 15:39:59 +00:00
jan.nijtmans 3da138a429 Unneeded if() 2021-02-22 13:32:44 +00:00
jan.nijtmans f6e9d201d5 Fix regression in msvc OPTS=static,msvcrt build. I think I finally got it now. 2021-02-22 13:14:55 +00:00
jan.nijtmans 80922e4b68 Give TzsetIfNecessary "interp" argument. 2021-02-22 08:02:27 +00:00
jan.nijtmans c15d68cbc4 Experiment: Remove the "::tcl::clock::getenv" function. 2021-02-19 18:00:48 +00:00
jan.nijtmans b8e536005a Merge 8.7. Use more TCL_UNUSED() 2021-02-19 11:17:25 +00:00
jan.nijtmans 2a69a1d551 Merge 8.6 2021-02-19 09:26:15 +00:00
jan.nijtmans 3596c610aa Fix various compiler warnings 2021-02-19 09:25:40 +00:00
jan.nijtmans 31802cfa31 Get sebres-8-6-clock-speedup-cr2 ready for 8.7 too 2021-02-18 17:27:11 +00:00
jan.nijtmans c723b685c9 One more error-message tweak 2021-02-18 14:32:52 +00:00
jan.nijtmans 16cde18103 tweak error-messages a little more (no quotes here) 2021-02-18 14:25:46 +00:00
jan.nijtmans a68e421914 tweak error-messages 2021-02-18 14:19:34 +00:00
jan.nijtmans 9d7e44b72f Merge 8.6 2021-02-18 12:25:12 +00:00
jan.nijtmans f7bf1438ac Merge 8.6 2021-02-17 18:22:26 +00:00
jan.nijtmans f3b329dd28 Merge 8.7 2021-01-06 11:52:16 +00:00
dkf 496cff3ee1 merge core-8-branch 2021-01-05 20:41:27 +00:00
dkf 0f93742804 merge core-8-branch 2020-12-06 18:24:00 +00:00
jan.nijtmans 08edc0b383 Merge 8.6 2020-11-30 15:57:21 +00:00
jan.nijtmans 38ba30a89b Merge 8.6 2020-10-30 15:38:47 +00:00
jan.nijtmans 22c4ca00cf Merge 8.6 2020-10-16 16:29:16 +00:00
jan.nijtmans a1e4948dd6 Merge 8.6. More warning fixes 2020-10-15 10:09:59 +00:00
jan.nijtmans 0f5a46a96f Merge 8.6 2020-10-13 16:04:25 +00:00
jan.nijtmans 85ffaea615 Eliminate some eol-spacing, eliminate some gcc warnings (with -Wc++-compat) 2020-10-12 16:47:09 +00:00
jan.nijtmans d7011470f6 Merge 8.6 2020-10-12 11:21:29 +00:00
sebres 1a2f289ff6 optimizes locale cache: locale is case-sensitive key; simplifying format localization routine (cached within locale mc-catalog in C);
clock::mcget - be sure we don't overwrite catalog of (common) locale {} (as it's a base of other catalogs loaded later).
2020-06-23 19:21:22 +00:00
jan.nijtmans 80626f6c0c Merge 8.6. Merge 8.6. Fix tclClockFmt.c build 2020-06-23 10:09:39 +00:00
sebres b50d4cd9cf switch internal numbers to long (size of time_t is depending by platform, compiler, stdlib and its directives, and long is enough now for every part of input-string recognized inside of free-scan); this can drastically speedup scan (especially 32-bit platforms) 2020-06-22 18:37:29 +00:00
sebres b716ab245a rebuilt with bison 3.5; replace deprecated %pure-parser with %define api.pure 2020-06-22 18:35:05 +00:00
sebres 22190bab87 Merge branch 'iso-TZ-bug-21': closes gh-21 (bug [a1bd37b719], https://github.com/sebres/tclclockmod/issues/21) 2020-06-22 18:29:44 +00:00
sebres 6e5bb624e6 resolves more shift/reduce conflicts (since SP token is expected by few items only, otherwise silently ignored) 2020-06-22 18:26:46 +00:00
sebres 65f65c4def small amend to #21 allowing time without seconds part "hh:mm" as extended ISO time (with and without T literal) 2020-06-22 18:22:19 +00:00
sebres 4a1bdef486 optimized ISO 8601 timestamp (with extended formats, T literal is optional now, more tests); decreases conflicts (10 shift/reduce and 9 reduce/reduce only); 2020-06-22 18:22:09 +00:00
sebres 207e44ee21 ISO 8601 timestamp format accepts extended date and time (YYYY-MM-DD and hh:mm:ss);
implements more strict TZ recognition rules by word-lookup (lookahead considering word boundaries, see test-cases), so avoid several conflicts, also confusing literal T in ISO timestamp with military TZ;
closes #21
2020-06-22 18:21:59 +00:00
sebres ac6a529dff added test-cases illustrating bug #21: literal may be mistakenly recognized as a time-zone (doesn't consider word-boundaries) 2020-06-22 18:21:14 +00:00
sebres 584d98d703 more tests time-zone independent 2020-06-22 18:19:14 +00:00
sebres 2bb76a7d6d close fork 2020-06-22 18:17:50 +00:00
sebres 034105d1bc merge 8.6 2020-06-22 18:11:58 +00:00
sebres 32cb6e1608 compatibility to future 8.6 version ([6596c4af31e29b5d] introduced new internals TclUtfPrev/TclUtfNext in tclInt.h), avoids conflict with own implementation for previous version 2020-06-22 17:36:11 +00:00
sebres 5551e41e7a simplification of new tests 2020-06-22 17:28:38 +00:00
sebres a433b08b99 Merge branch 'gh-20--neg-relmonth-offs': fixed relative clock calculation on negative month offset over threshold of a year;
closes #20 (https://github.com/sebres/tclclockmod/issues/20)
2020-06-22 17:21:06 +00:00
sebres 369a1d7404 fixed relative clock calculation on negative month offset over threshold of a year:
compiler/platform fix for negative offs if -1 % 12 results to -1 instead of 11 (removed by compilers where remainder is always positive)
2020-06-22 17:19:34 +00:00
sebres fdc6c737b4 added test case illustrating bug #20 - wrong relative clock calculation on negative month offset over threshold of a year 2020-06-22 17:19:19 +00:00
sebres 920d918f32 Merge branch 'fix-gh-19' (https://github.com/sebres/tclclockmod/issues/19) 2020-06-22 17:14:12 +00:00
sebres 03e761f842 windows: small amend (speedup _hasRegistry in positive case) 2020-06-22 16:52:21 +00:00
sebres 9ba7c4aa1c close #19: implements safe "catch" in clock NS - avoid overwrite of interp state by select and setup timezone (as well as in other "catched" blocks on lazy loading or initialization);
windows: load registry package on demand only (if possible, using same safe "catch" command).
2020-06-22 16:51:41 +00:00
sebres 1ccbe8c2d0 avoid overwrite of interp state by select and setup timezone 2020-06-22 16:44:35 +00:00
sebres fb474e354f avoid change of interp state in ::tcl::clock::LocalizeFormat 2020-06-22 16:42:31 +00:00
sebres d576bf5f4a test case illustrating #19: some initialization of clock.tcl (locale/msgcat, etc) could overwrite interp state (errorInfo/errorCode) 2020-06-22 16:35:37 +00:00
sebres b8d9b4e996 improve tests, since timerate supporting max-count too 2020-06-22 16:30:47 +00:00
dkf 7dd7fe1b6c merge core-8-branch 2020-02-26 16:56:53 +00:00
dkf bfcd8d392a merge core-8-branch 2020-02-22 12:35:05 +00:00
dkf 004c1e1c8e Less contorted code 2020-02-22 12:31:11 +00:00
dkf 99145db40b There are subtle cases where an append-if-new operation is really useful for a slot. 2020-02-15 10:28:01 +00:00
jan.nijtmans 2569d6f81c Merge 8.7 2020-02-12 13:24:16 +00:00
dkf dafa1487f9 caching is one of the two hard things in CS (along with naming and off-by-one-errors) 2020-02-07 09:21:08 +00:00
dkf 743e0e4e1a Move the TIP 558 tests into their own file 2020-01-01 16:57:08 +00:00
dkf 8249e877df More error cases 2020-01-01 16:46:55 +00:00
dkf b308bd97e6 Check for another tricky edge case 2020-01-01 16:01:36 +00:00
dkf ae24dd87fa merge core-8-branch 2019-12-31 23:27:01 +00:00
dkf 995eed36fd Better error messages when a property has the wrong kind for the type of access desired 2019-12-31 23:25:58 +00:00
dkf c4f94adb46 Other list-returning [info class] subcommands are plurals, so change property -> properties 2019-12-31 22:58:01 +00:00
dkf d4b3d3a460 Added docs 2019-12-31 14:56:32 +00:00
dkf 6eb109c913 Even more tests, this time of the return-code semantics of property getters and setters. 2019-12-30 15:35:51 +00:00
dkf edb3a561eb merge core-8-branch 2019-12-30 10:13:25 +00:00
dkf c15b6135d5 More tests, more fixes 2019-12-30 10:12:16 +00:00
dkf a7a226fc49 Property definitions now work on instances. 2019-12-29 13:23:47 +00:00
dkf 76c3874ad8 Starting to do the testing. 2019-12-28 21:55:56 +00:00
dkf c0eed541eb Implementation of properties for TclOO 2019-12-28 13:24:59 +00:00
sebres b62e2e7fce small amend to [3bec82b72c] (sebres/tclclockmod#18): test cases extended to cover error cases (on ambiguous short forms of month) too 2019-07-15 12:21:40 +00:00
sebres 8b9f762113 Fixes sebres/tclclockmod#18 (Fails to parse short month name for June);
The reason for that was the wrong length calculation by scanning through my string index tree, so the ambiguity check `j->(jan,ju->(jun,jul))` failed for 2nd element Ju(ne) with length 2.
Simple fix and test-cases covering that, but it looks like this has a good potential for speedup (todo: move length calculation from search to build)
2019-07-15 12:18:52 +00:00
sebres edf6700ad9 Merge pull request sebres/tclclockmod#17 from sebres/simplify-yy-flags
Simplifying info structure, yacc rules and flags
2019-07-15 12:14:56 +00:00
sebres 9f872f5338 simplifying info-structure, usage of flags etc (normalizing in order to use same flags as by formatted scan instead of members like yyHave...);
(additionally allocates info->messages object on demand, if free scan fails)
2019-07-15 12:12:22 +00:00
sebres c587280d00 **interim** try simplify info-structure (replace yyHave... with flags) 2019-07-15 12:12:05 +00:00
sebres cf0b861eb9 merge 8.6 2019-07-15 11:53:37 +00:00
sebres 285ce50812 merge 8.6 2019-03-13 00:44:22 +00:00
sebres a71097f27c integrate branch clock-astronomical-jdn: merge pull request #16 from sebres/astronomical-jdn (https://github.com/sebres/tclclockmod/pull/16);
astronomical and calendar JDN/JD with time fraction
2019-03-13 00:33:29 +00:00
sebres e9541d428e scan: all JDN/JD are signed, so allow parse negative Julian days 2019-03-13 00:24:44 +00:00
sebres 72f8c81ad1 format: add support of new JDN-tokens (calendar JD %EJ, astronomical JD %Ej) with time fraction. 2019-03-13 00:24:25 +00:00
sebres 1ab33bd240 scan: extended with token %EJ to scan calendar julian day with time fraction (in opposite to astronomical JD %Ej it starts at midnight like %J token). 2019-03-13 00:23:57 +00:00
sebres 0849ec1f76 implemented scan of astronomical julian day (JDN/ID) with token %Ej, corresponds julian date of sqlite-database.
In opposite to calendar julian day `%J`, it starts the day at noon (and can parse float, so contains a time fraction).
**TODO** implement `clock format ... -format %Ej` and test-cases for format of this token.
**TODO** implement `%EJ` token for calendar JD with time fraction.
2019-03-13 00:21:13 +00:00
sebres 27f86643f3 merge 8.6 - timerate is part of Tcl now (since TIP#527 got merged), conflicts resolved, tclDate.c rebuilt with bison, etc. 2019-03-05 22:58:30 +00:00
sebres c843894855 merge 8.6 2019-01-25 20:47:41 +00:00
sebres 57f12fe492 format: fix padding on output of julian day token %J: restored tcl-core compatibility (7x 0-padding, affected in B.C.E. only):
`clock format -210866803200 -format %J -gmt 1` results into `0000000`.
2019-01-25 20:18:27 +00:00
sebres 5846943d27 fixes [16e4fc3096] julian day calculation (mostly affected for very small times, B.C.E. between 4714 and 4713), added test-cases covering that. 2019-01-25 20:18:09 +00:00
sebres ec6bc3e8fc small optimization of format-proc tokens, that are don't use val in callback, as well as don't do the back-conversion from int to string (output inside fmtproc) - switch to CFMTT_PROC token type. 2019-01-25 20:17:46 +00:00
sebres 7a2c96b421 fix of _witoaw: adjustment of width for negative wide-int (conversion wide to string using _witoaw(buf, -1, '0', 1) caused mistakenly 10-chars padding). 2019-01-25 20:17:26 +00:00
sebres 903f7ee3c9 introduced new configure option -max-jdn corresponds current setting of tcl-core clock scans for JulianDay per default (5373484 = "9999-12-31 23:59:59") 2019-01-25 20:16:57 +00:00
sebres 66865f387e merge 8.6 2019-01-10 14:43:25 +00:00
sebres 2aee61ea30 avoid possible leaking on tzName-object in error case (most impossible resp. rarely, but nevertheless better don't return directly). 2019-01-10 13:55:20 +00:00
sebres a4600a6847 remove unneeded dependencies (taken along by pack-porting, not needed in mod now) 2019-01-10 13:52:17 +00:00
sebres 634ca5a33c Merge pull request tclclockmod#15 from sebres/fix-compat-regression-on-spaces 2018-11-29 20:31:30 +00:00
sebres 6855aaa799 clock scan: compatibility - scan regression on spaces, mandatory trailing spaces in format, see test "clock-45.4" 2018-11-29 20:14:14 +00:00
sebres a6482d22e2 test-cases: clock-45.* - new compatibility tests checking several scan regression on spaces 2018-11-29 20:12:45 +00:00
sebres 577976dba7 clock scan: consider extra trailing spaces at end of input (closes tclclockmod#14), only the first space at end is interesting in non-strict mode (should match SPACE token if present in scan-format) 2018-11-29 20:11:14 +00:00
sebres 68a780a3bf clock scan: consider multiple spaces between tokens (closes tclclockmod#13): combine multiple white-spaces as single token in format. 2018-11-29 20:04:42 +00:00
sebres 9931564ea5 tclGetDate.y: added missing semicolon, tclDate.c rebuilt using Bison 3.1;
resolves warning "maybe-uninitialized" by `*++yyvsp = yylval;`
2018-10-08 14:08:05 +00:00
sebres 26cbce7e81 closed DST-hole bug "Validity check should get the rule the time-leak corresponding DST switch of TZ", see https://github.com/sebres/tclclockmod/issues/11 for details;
backported from https://github.com/sebres/tclclockmod/pull/12
2018-10-05 19:54:16 +00:00
sebres ed80b6476b Introduces new validity rule (gh-11): check input-time is valid regarding time-zone conversion inside the time-zone ranges (not in DST-hole);
ConvertLocalToUTC/ConvertUTCToLocal rewritten to use common cache (and ConvertLocalToUTC invalidates the local seconds, if it was outside the time-zone ranges during conversion);
Bonus: improves performance of the involved cache by time-zone conversions (if more as 1 TZ), see both performance test-cases "Convert TZ: direct":
(1.3µs vs. 1.7µs previously)
2018-10-05 19:38:19 +00:00
sebres e5fd7b2a2a scan: new tests for validation rules: invalid time (DST-hole, out of range in time-zone) 2018-10-05 18:13:40 +00:00
sebres 81f2a20b3c merge 8.6 2018-07-20 16:25:50 +00:00
1335 changed files with 204716 additions and 173477 deletions

No files matched your search

+4 -6
View File
@@ -1,4 +1,5 @@
compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs
compat/zlib/contrib/dotzlib/readme.txt
compat/zlib/contrib/dotzlib/*.cs
compat/zlib/contrib/vstudio/readme.txt
compat/zlib/contrib/vstudio/*/zlib.rc
compat/zlib/contrib/vstudio/*/zlibvc.def
@@ -11,11 +12,8 @@ libtommath/*.dsp
libtommath/*.sln
libtommath/*.vcproj
tools/tcl.wse.in
win/buildall.vc.bat
win/*.bat
win/*.vc
win/coffbase.txt
win/makefile.vc
win/rules.vc
win/rules-ext.vc
win/targets.vc
win/tcl.dsp
win/tcl.dsw
+5
View File
@@ -48,9 +48,11 @@ libtommath/*.tex
macosx/configure
unix/autoMkindex.tcl
unix/dltest.marker
unix/dltest/embtest
unix/dltest/*.bundle
unix/dltest/*.dll
unix/dltest/*.dylib
unix/dltest/*.exe
unix/dltest/*.o
unix/dltest/*.sl
unix/dltest/*.so
@@ -58,10 +60,13 @@ unix/tcl.pc
unix/tclIndex
unix/Tcl-Info.plist
unix/Tclsh-Info.plist
unix/pkgs8/*
unix/pkgs/*
win/Debug*
win/Release*
win/tcl.pc
win/*.manifest
win/pkgs8/*
win/pkgs/*
win/coffbase.txt
win/tcl.hpj
+3
View File
@@ -22,6 +22,9 @@
# Declare files that will always have CRLF line endings on checkout.
*.bat eol=crlf
*.cs eol=crlf
*.dsp eol=crlf
*.dsw eol=crlf
*.sln eol=crlf
*.vc eol=crlf
+15
View File
@@ -0,0 +1,15 @@
{
"problemMatcher": [
{
"owner": "tcltest",
"pattern": [
{
"regexp": "^==== ([-\\w]+) (.+) (FAILED)$",
"severity": 3,
"message": 2,
"code": 1
}
]
}
]
}
+250
View File
@@ -0,0 +1,250 @@
# This workflow is meant for development use and run only on demand.
# It is customizable to select
# - Platforms
# - Toolchains
# - Branches (no need for core-* prefixes)
# - Tests
# To run the workflow, select "Custom" on the left side in the GH Actions
# page. Then click the Run workflow button on the right. This will display
# a dropdown that allows customization as above.
#
# To run the workflow, you need to have permissions to the repository.
# The simplest way is to clone the Tcl mirror on Github. However, that means
# if you work in fossil, you have a potential 24-hour wait before the mirror
# updates, which apart from nostalgia about the punched card batch processing
# era, is not so convenient. My preference instead is to mirror the fossil
# repository to Github via a local checkout on my system, do the work there
# pushing to github and running this workflow to verify across platforms
# and then committing back to the master fossil repository.
#
# Improvements to the workflow welcome.
name: Custom
on:
workflow_dispatch:
inputs:
platform:
description: 'Target platform(s)")'
required: true
default: 'all'
type: choice
options:
- all
- windows
- linux
- macos
windows_toolchains:
description: 'Windows toolchain'
required: true
type: choice
options:
- '["nmake", "msys"]'
- '["nmake"]'
- '["msys"]'
default: '["nmake"]'
windows_architectures:
description: 'Architecture (Windows Nmake only)'
required: true
type: choice
options:
- '["x64"]'
- '["x86"]'
- '["x64", "x86"]'
default: '["x64"]'
linux_compiler:
description: 'Linux compiler'
required: true
default: 'gcc'
type: choice
options:
- gcc
- clang
run_tests:
description: 'Run tests'
required: false
default: true
type: boolean
test_flags:
description: 'TESTFLAGS'
required: false
default: ''
jobs:
windows:
if: ${{ github.event.inputs.platform == 'windows' || github.event.inputs.platform == 'all' }}
runs-on: windows-2025-vs2026
strategy:
matrix:
arch: ${{ fromJSON(github.event.inputs.windows_architectures) }}
toolchain: ${{ fromJSON(github.event.inputs.windows_toolchains) }}
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.ref }}
# Nmake builds
- name: Setup MSVC (for nmake)
if: ${{ matrix.toolchain == 'nmake' }}
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}
- name: Build with nmake (Visual C++)
if: ${{ matrix.toolchain == 'nmake' }}
shell: cmd
env:
ERROR_ON_FAILURES: 1
working-directory: win
run: |
nmake /s /f makefile.vc
- name: Tests with nmake (Visual C++)
if: ${{ matrix.toolchain == 'nmake' && inputs.run_tests != 'false' }}
shell: cmd
env:
ERROR_ON_FAILURES: 1
TESTFLAGS: ${{ github.event.inputs.test_flags }}
working-directory: win
run: |
echo TESTFLAGS=%TESTFLAGS%
nmake /s /f makefile.vc test
# Msys builds
- name: Set up msys2 (x64)
if: ${{ matrix.toolchain == 'msys' && matrix.arch == 'x64'}}
uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
pacboy: "git: make: gcc:p"
path-type: minimal
release: true
update: false
cache: true
- name: Set up msys2 (x86)
if: ${{ matrix.toolchain == 'msys' && matrix.arch == 'x86'}}
uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
pacboy: "git: make: gcc:p"
path-type: minimal
release: true
update: false
cache: true
- name: Verify toolchain
if: ${{ matrix.toolchain == 'msys' }}
shell: bash -l {0}
run: |
gcc -v
make -v
- name: Configure with MSYS
if: ${{ matrix.toolchain == 'msys' }}
env:
ERROR_ON_FAILURES: 1
working-directory: win
shell: msys2 {0}
run: |
mkdir build
cd build
../configure
- name: Compile with MSYS
if: ${{ matrix.toolchain == 'msys' }}
env:
ERROR_ON_FAILURES: 1
shell: msys2 {0}
working-directory: win\build
run: |
file ../../libtommath/win32/tommath.lib
make -s
- name: Tests with MSYS
if: ${{ matrix.toolchain == 'msys' && inputs.run_tests != 'false' }}
env:
ERROR_ON_FAILURES: 1
TESTFLAGS: ${{ github.event.inputs.test_flags }}
working-directory: win\build
shell: msys2 {0}
run: |
echo TESTFLAGS=$TESTFLAGS
make -s test
linux:
if: ${{ github.event.inputs.platform == 'linux' || github.event.inputs.platform == 'all' }}
runs-on: ubuntu-26.04
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.ref }}
- name: Configure with ${{ github.event.inputs.linux_compiler }}
env:
ERROR_ON_FAILURES: 1
CC: ${{ github.event.inputs.linux_compiler }}
working-directory: unix
run: |
mkdir build
cd build
echo CC=$CC
../configure || (cat config.log && exit 1)
- name: Compile
working-directory: unix/build
run: |
make -s
- name: Run tests
if: ${{ inputs.run_tests != 'false' }}
env:
ERROR_ON_FAILURES: 1
TESTFLAGS: ${{ github.event.inputs.test_flags }}
working-directory: unix/build
run: |
echo TESTFLAGS=$TESTFLAGS
make -s test
macos:
if: ${{ github.event.inputs.platform == 'macos' || github.event.inputs.platform == 'all' }}
runs-on: macos-26
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.ref }}
- name: Configure
env:
ERROR_ON_FAILURES: 1
working-directory: unix
run: |
mkdir build
cd build
../configure --enable-framework || (cat config.log && exit 1)
make -s
- name: Compile
working-directory: unix/build
run: |
make -s
- name: Run tests
if: ${{ inputs.run_tests != 'false' }}
env:
ERROR_ON_FAILURES: 1
TESTFLAGS: ${{ github.event.inputs.test_flags }}
working-directory: unix/build
run: |
echo TESTFLAGS=$TESTFLAGS
make -s test
+7
View File
@@ -0,0 +1,7 @@
puts exe:\t[info nameofexecutable]
puts ver:\t[info patchlevel]
catch {
puts build:\t[tcl::build-info]
}
puts lib:\t[info library]
puts plat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]
+71 -16
View File
@@ -1,54 +1,109 @@
name: Linux
on: [push]
on:
push:
branches:
- "main"
- "core-9-1-branch"
tags:
- "core-*"
workflow_dispatch:
permissions:
contents: read
jobs:
plan:
runs-on: ubuntu-26.04
outputs:
gcc: ${{ steps.matrix.outputs.gcc }}
steps:
- name: Select build matrix based on branch name
id: matrix
run: |
(
echo gcc=$(jq -nc '{config: (if env.IsMatched == "true" then env.FULL else env.PARTIAL end) | fromjson }' )
) | tee -a $GITHUB_OUTPUT
env:
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-1-branch' }}
# DO NOT CHANGE THESE MATRIX SPECS; IT AFFECTS OUR COST CONTROLS
FULL: >
[
"",
"CFLAGS=-DTCL_NO_DEPRECATED=1",
"--disable-shared",
"--disable-zipfs",
"--enable-symbols",
"--enable-symbols=mem",
"--enable-symbols=all",
"CFLAGS=-ftrapv",
"CFLAGS=-m32 CPPFLAGS=-m32 LDFLAGS=-m32 --disable-64bit"
]
PARTIAL: >
[
"",
"--enable-symbols=all",
"CFLAGS=-m32 CPPFLAGS=-m32 LDFLAGS=-m32 --disable-64bit"
]
gcc:
runs-on: ubuntu-22.04
needs: plan
runs-on: ubuntu-26.04
strategy:
matrix:
cfgopt:
- ""
- "CFLAGS=-DTCL_UTF_MAX=3"
- "CFLAGS=-DTCL_NO_DEPRECATED=1"
- "--disable-shared"
- "--enable-symbols"
- "--enable-symbols=mem"
- "--enable-symbols=all"
matrix: ${{ fromJson(needs.plan.outputs.gcc) }}
defaults:
run:
shell: bash
working-directory: unix
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
timeout-minutes: 5
- name: Install 32-bit dependencies if needed
# Duplicated from above
if: ${{ matrix.config == 'CFLAGS=-m32 CPPFLAGS=-m32 LDFLAGS=-m32 --disable-64bit' }}
run: |
sudo apt-get update
sudo apt-get install gcc-multilib libc6-dev-i386
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
- name: Configure ${{ matrix.config }}
run: |
mkdir "${HOME}/install dir"
./configure ${CFGOPT} "--prefix=$HOME/install dir" || (cat config.log && exit 1)
env:
CFGOPT: ${{ matrix.cfgopt }}
CFGOPT: ${{ matrix.config }}
timeout-minutes: 5
- name: Build
run: |
make all
make -j4 all
timeout-minutes: 5
- name: Build Test Harness
run: |
make tcltest
make -j4 tcltest
timeout-minutes: 5
- name: Info
run: |
ulimit -a || echo 'get limit failed'
make runtest SCRIPT=../.github/workflows/info.tcl || echo 'get info failed'
- name: Run Tests
run: |
echo "::add-matcher::.github/tcltest.json"
make test
echo "::remove-matcher::.github/tcltest.json"
env:
ERROR_ON_FAILURES: 1
CI: 1
timeout-minutes: 30
- name: Test-Drive Installation
run: |
make install
timeout-minutes: 5
- name: Create Distribution Package
if: ${{ matrix.config == '' }}
run: |
make dist
timeout-minutes: 5
- name: Convert Documentation to HTML
if: ${{ matrix.config == '' }}
run: |
make html-tcl
timeout-minutes: 5
+61 -17
View File
@@ -1,66 +1,110 @@
name: macOS
on: [push]
on:
push:
branches:
- "main"
- "core-9-1-branch"
tags:
- "core-*"
workflow_dispatch:
permissions:
contents: read
jobs:
plan:
runs-on: ubuntu-26.04
outputs:
clang: ${{ steps.matrix.outputs.clang }}
steps:
- name: Select build matrix based on branch name
id: matrix
run: |
(
echo clang=$(jq -nc '{config: (if env.IsMatched == "true" then env.FULL else env.PARTIAL end) | fromjson }' )
) | tee -a $GITHUB_OUTPUT
env:
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-1-branch' }}
# DO NOT CHANGE THIS MATRIX SPEC; IT AFFECTS OUR COST CONTROLS
FULL: >
[
"",
"--disable-shared",
"--disable-zipfs",
"--enable-symbols",
"--enable-symbols=mem",
"--enable-symbols=all"
]
PARTIAL: >
[
"",
"--enable-symbols=all"
]
xcode:
runs-on: macos-11
runs-on: macos-26
defaults:
run:
shell: bash
working-directory: macosx
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
timeout-minutes: 5
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
working-directory: generic
- name: Build
run: make all
run: make -j4 all
env:
CFLAGS: -arch x86_64 -arch arm64
timeout-minutes: 15
- name: Run Tests
run: make test styles=develop
run: |
echo "::add-matcher::.github/tcltest.json"
make -j4 test styles=develop
env:
ERROR_ON_FAILURES: 1
MAC_CI: 1
timeout-minutes: 30
clang:
runs-on: macos-11
runs-on: macos-26
needs: plan
strategy:
matrix:
cfgopt:
- ""
- "--disable-shared"
- "--enable-symbols"
- "--enable-symbols=mem"
- "--enable-symbols=all"
matrix: ${{ fromJson(needs.plan.outputs.clang) }}
defaults:
run:
shell: bash
working-directory: unix
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
timeout-minutes: 5
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
mkdir "$HOME/install dir"
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
- name: Configure ${{ matrix.config }}
# Note that macOS is always a 64 bit platform
run: ./configure --enable-dtrace --enable-framework ${CFGOPT} "--prefix=$HOME/install" || (cat config.log && exit 1)
env:
CFLAGS: -arch x86_64 -arch arm64
CFGOPT: ${{ matrix.cfgopt }}
CFGOPT: ${{ matrix.config }}
timeout-minutes: 5
- name: Build
run: |
make all tcltest
make -j4 all tcltest
env:
CFLAGS: -arch x86_64 -arch arm64
timeout-minutes: 15
- name: Info
run: |
ulimit -a || echo 'get limit failed'
make runtest SCRIPT=../.github/workflows/info.tcl || echo 'get info failed'
- name: Run Tests
run: |
echo "::add-matcher::.github/tcltest.json"
make test
env:
ERROR_ON_FAILURES: 1
MAC_CI: 1
timeout-minutes: 30
+113 -15
View File
@@ -1,17 +1,25 @@
name: Build Binaries
on: [push]
on:
push:
branches:
- "main"
- "core-9-1-branch"
tags:
- "core-*"
workflow_dispatch:
permissions:
contents: read
jobs:
linux:
name: Linux
runs-on: ubuntu-20.04
runs-on: ubuntu-26.04
defaults:
run:
shell: bash
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
- name: Prepare
run: |
touch generic/tclStubInit.c generic/tclOOStubInit.c
@@ -33,31 +41,39 @@ jobs:
chmod +x tclsh${TCL_PATCHLEVEL}_snapshot
tar -cf tclsh${TCL_PATCHLEVEL}_snapshot.tar tclsh${TCL_PATCHLEVEL}_snapshot
working-directory: 1dist
- name: Info
run: |
ulimit -a || echo 'get limit failed'
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v7
with:
name: Tclsh ${{ env.TCL_PATCHLEVEL }} Linux single-file build (snapshot)
path: 1dist/*.tar
id: upload
outputs:
url: ${{ steps.upload.outputs.artifact-url }}
macos:
name: macOS
runs-on: macos-11
runs-on: macos-26
defaults:
run:
shell: bash
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
- name: Checkout create-dmg
uses: actions/checkout@v3
uses: actions/checkout@v7
with:
repository: create-dmg/create-dmg
ref: v1.0.8
ref: v1.2.2
path: create-dmg
- name: Prepare
run: |
mkdir 1dist
touch generic/tclStubInit.c generic/tclOOStubInit.c || true
wget https://github.com/culler/macher/releases/download/v1.3/macher
wget https://github.com/culler/macher/releases/download/v1.8/macher
sudo cp macher /usr/local/bin
sudo chmod a+x /usr/local/bin/macher
echo "VER_PATH=$(cd tools; pwd)/addVerToFile.tcl" >> $GITHUB_ENV
@@ -68,8 +84,8 @@ jobs:
working-directory: unix
- name: Build
run: |
make tclsh
make shell SCRIPT="$VER_PATH $GITHUB_ENV"
make -j4 tclsh
make -j4 shell SCRIPT="$VER_PATH $GITHUB_ENV"
echo "TCL_BIN=`pwd`/tclsh" >> $GITHUB_ENV
echo "TCL_ZIP=`pwd`/`echo libtcl*.zip`" >> $GITHUB_ENV
working-directory: unix
@@ -95,17 +111,25 @@ jobs:
"Tcl-$TCL_PATCHLEVEL-(snapshot).dmg" \
"contents/"
working-directory: 1dist
- name: Info
run: |
ulimit -a || echo 'get limit failed'
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v7
with:
name: Tclsh ${{ env.TCL_PATCHLEVEL }} macOS single-file build (snapshot)
path: 1dist/*.dmg
id: upload
outputs:
url: ${{ steps.upload.outputs.artifact-url }}
win:
name: Windows
runs-on: windows-2019
runs-on: windows-2025-vs2026
defaults:
run:
shell: msys2 {0}
timeout-minutes: 10
env:
CC: gcc
CFGOPT: --disable-symbols --disable-shared
@@ -116,7 +140,7 @@ jobs:
msystem: UCRT64
install: git mingw-w64-ucrt-x86_64-toolchain make zip
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
- name: Prepare
run: |
touch generic/tclStubInit.c generic/tclOOStubInit.c
@@ -139,8 +163,82 @@ jobs:
run: |
cp ../win/tclsh*.exe tclsh${TCL_PATCHLEVEL}_snapshot.exe
working-directory: 1dist
- name: Info
run: |
ulimit -a || echo 'get limit failed'
echo 'puts exe:\t[info nameofexecutable]\nver:\t[info patchlevel]\t[if {![catch tcl::build-info ret]} {set ret}]\nlib:\t[info library]\nplat:\t[lsort -dictionary -stride 2 [array get tcl_platform]]' | make runtest || echo 'get info failed'
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v7
with:
name: Tclsh ${{ env.TCL_PATCHLEVEL }} Windows single-file build (snapshot)
path: '1dist/*_snapshot.exe'
id: upload
outputs:
url: ${{ steps.upload.outputs.artifact-url }}
combine:
needs:
- linux
- macos
- win
name: Combine Artifacts (prototype)
runs-on: ubuntu-26.04
defaults:
run:
shell: bash
timeout-minutes: 10
env:
# See also
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables
REMOTE_PATH: ${{ vars.PUBLISH_DROP_PATH }}/data-${{ github.sha }}
steps:
- name: Make directory
run: |
mkdir data
- name: Get Linux build
uses: actions/download-artifact@v8
with:
path: data
# Can't download by artifact ID; stupid missing feature!
merge-multiple: true
- name: Check data downloaded
run: |
ls -AlR
working-directory: data
- name: Transfer built files
# https://github.com/marketplace/actions/rsync-deployments-action
uses: burnett01/rsync-deployments@9.0.1
id: rsync
if: false # Disabled... for now
with:
# I don't know what the right switches are here, BTW
switches: -avzr
path: data/
remote_path: ${{ env.REMOTE_PATH }}
remote_host: ${{ vars.PUBLISH_HOST }}
remote_user: ${{ vars.PUBLISH_USER }}
remote_key: ${{ secrets.DEPLOY_HOST_KEY }}
# MUST be a literal passwordless key
- name: Publish files
# https://github.com/marketplace/actions/ssh-remote-commands
uses: appleboy/ssh-action@v1.2.5
id: ssh
if: steps.rsync.outcome == 'success'
with:
host: ${{ vars.PUBLISH_HOST }}
username: ${{ vars.PUBLISH_USER }}
key: ${{ secrets.DEPLOY_HOST_KEY }}
script: |
${{ vars.PUBLISHER_SCRIPT }} ${{ env.REMOTE_PATH }} ${{ github.ref_type }} ${{ github.ref_name }}
- name: Report what would be done
if: steps.rsync.outcome == 'skipped'
env:
SWITCHES: -av
LOCAL_PATH: data/
REMOTE_HOST: ${{ vars.PUBLISH_HOST }}
REMOTE_USER: ${{ vars.PUBLISH_USER }}
REMOTE_SCRIPT: |
${{ vars.PUBLISHER_SCRIPT }} ${{ env.REMOTE_PATH }} ${{ github.ref_type }} ${{ github.ref_name }}
run: |
echo "would run: rsync $SWITCHES $LOCAL_PATH $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH"
echo "would run: ssh $REMOTE_USER@$REMOTE_HOST $REMOTE_SCRIPT"
# Consider https://github.com/marketplace/actions/slack-notify maybe?
+102 -37
View File
@@ -1,90 +1,155 @@
name: Windows
on: [push]
on:
push:
branches:
- "main"
- "core-9-1-branch"
tags:
- "core-*"
workflow_dispatch:
permissions:
contents: read
env:
ERROR_ON_FAILURES: 1
jobs:
plan:
runs-on: ubuntu-26.04
outputs:
msvc: ${{ steps.matrix.outputs.msvc }}
gcc: ${{ steps.matrix.outputs.gcc }}
steps:
- name: Select build matrix based on branch name
id: matrix
run: |
(
echo msvc=$(jq -nc '{arch: ["x64"], config: (if env.IsMatched == "true" then env.MSVC_FULL else env.MSVC_PARTIAL end) | fromjson }' )
echo gcc=$(jq -nc '{config: (if env.IsMatched == "true" then env.GCC_FULL else env.GCC_PARTIAL end) | fromjson }' )
) | tee -a $GITHUB_OUTPUT
env:
IsMatched: ${{ github.ref_name == 'main' || github.ref_name == 'core-9-1-branch' }}
# DO NOT CHANGE THESE MATRIX SPECS; IT AFFECTS OUR COST CONTROLS
MSVC_FULL: >
[
"",
"CHECKS=nodep",
"OPTS=static",
"OPTS=noembed",
"OPTS=symbols",
"OPTS=symbols STATS=compdbg,memdbg"
]
MSVC_PARTIAL: >
[
"",
"OPTS=symbols STATS=compdbg,memdbg"
]
GCC_FULL: >
[
"",
"CFLAGS=-DTCL_NO_DEPRECATED=1",
"--disable-shared",
"--disable-zipfs",
"--enable-symbols",
"--enable-symbols=mem",
"--enable-symbols=all"
]
GCC_PARTIAL: >
[
"",
"--disable-shared",
"--enable-symbols=all"
]
msvc:
runs-on: windows-2022
runs-on: windows-2025-vs2026
needs: plan
defaults:
run:
shell: powershell
working-directory: win
strategy:
matrix:
cfgopt:
- ""
- "OPTS=utf16"
- "CHECKS=nodep"
- "OPTS=static"
- "OPTS=symbols"
- "OPTS=symbols STATS=compdbg,memdbg"
matrix: ${{ fromJson(needs.plan.outputs.msvc) }}
# Using powershell means we need to explicitly stop on failure
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
timeout-minutes: 5
- name: Init MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Build ${{ matrix.cfgopt }}
shell: cmd
run: |
&nmake -f makefile.vc ${{ matrix.cfgopt }} all
for /f "usebackq tokens=*" %%i in (`vswhere -latest -property installationPath`) do set "VS_PATH=%%i"
call "%VS_PATH%\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.arch }}
set | findstr /i "^VC ^VCTools ^Windows ^Universal ^INCLUDE ^LIB ^PATH ^DevEnv" >> %GITHUB_ENV%
- name: Build ${{ matrix.config }}
run: |
&nmake -f makefile.vc ${{ matrix.config }} all
if ($lastexitcode -ne 0) {
throw "nmake exit code: $lastexitcode"
}
- name: Build Test Harness ${{ matrix.cfgopt }}
timeout-minutes: 5
- name: Build Test Harness ${{ matrix.config }}
run: |
&nmake -f makefile.vc ${{ matrix.cfgopt }} tcltest
&nmake -f makefile.vc ${{ matrix.config }} tcltest
if ($lastexitcode -ne 0) {
throw "nmake exit code: $lastexitcode"
}
- name: Run Tests ${{ matrix.cfgopt }}
timeout-minutes: 5
- name: Run Tests ${{ matrix.config }}
run: |
&nmake -f makefile.vc ${{ matrix.cfgopt }} test
Write-Output "::add-matcher::.github/tcltest.json"
&nmake -f makefile.vc ${{ matrix.config }} test
if ($lastexitcode -ne 0) {
throw "nmake exit code: $lastexitcode"
}
timeout-minutes: 30
env:
ERROR_ON_FAILURES: 1
gcc:
runs-on: windows-2022
runs-on: windows-2025-vs2026
needs: plan
defaults:
run:
shell: msys2 {0}
working-directory: win
strategy:
matrix:
cfgopt:
- ""
- "CFLAGS=-DTCL_UTF_MAX=3"
- "CFLAGS=-DTCL_NO_DEPRECATED=1"
- "--disable-shared"
- "--enable-symbols"
- "--enable-symbols=mem"
- "--enable-symbols=all"
# Using powershell means we need to explicitly stop on failure
matrix: ${{ fromJson(needs.plan.outputs.gcc) }}
steps:
- name: Install MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
install: git mingw-w64-x86_64-toolchain make
timeout-minutes: 10
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v7
timeout-minutes: 5
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
mkdir "${HOME}/install dir"
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
- name: Configure ${{ matrix.config }}
run: |
./configure ${CFGOPT} "--prefix=$HOME/install dir" || (cat config.log && exit 1)
env:
CFGOPT: --enable-64bit ${{ matrix.cfgopt }}
CFGOPT: --enable-64bit ${{ matrix.config }}
timeout-minutes: 5
- name: Build
run: make all
run: make -j4 all
timeout-minutes: 5
- name: Build Test Harness
run: make tcltest
run: make -j4 tcltest
timeout-minutes: 5
- name: Info
run: |
ulimit -a || echo 'get limit failed'
make runtest SCRIPT=../.github/workflows/info.tcl || echo 'get info failed'
- name: Run Tests
run: make test
run: |
echo "::add-matcher::.github/tcltest.json"
make test
timeout-minutes: 30
env:
ERROR_ON_FAILURES: 1
- name: Install
run: make install
timeout-minutes: 5
# If you add builds with Wine, be sure to define the environment variable
# CI_USING_WINE when running them so that broken tests know not to run.
+4
View File
@@ -53,14 +53,18 @@ libtommath/*.tex
macosx/configure
unix/autoMkindex.tcl
unix/dltest.marker
unix/dltest/embtest
unix/tcl.pc
unix/tclIndex
unix/pkgs8/*
unix/pkgs/*
win/Debug*
win/Release*
win/*.manifest
win/pkgs8/*
win/pkgs/*
win/coffbase.txt
win/tcl.hpj
win/tcl.pc
win/nmakehlp.out
win/nmhlp-out.txt
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>tcl9</name>
<name>tcl9.1</name>
<comment></comment>
<projects>
</projects>
-401
View File
@@ -1,401 +0,0 @@
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=3"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
- CFGOPT="CFLAGS=-DTCL_UTF_MAX=3"
- 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"
# 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/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
# 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
- 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: NO_DEPRECATED"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'CHECKS=nodep' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'CHECKS=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' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static' '-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: NO_DEPRECATED"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'CHECKS=nodep' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'CHECKS=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' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=static' '-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
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
- choco install -y make zip
- cd ${BUILD_DIR}
- name: "Windows/GCC/Shared: UTF_MAX=3"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit CFLAGS=-DTCL_UTF_MAX=3"
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/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=3"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="CFLAGS=-DTCL_UTF_MAX=3"
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/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:
- 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
-8856
View File
File diff suppressed because it is too large. Load diff
-2634
View File
File diff suppressed because it is too large. Load diff
-2539
View File
File diff suppressed because it is too large. Load diff
-3629
View File
File diff suppressed because it is too large. Load diff
-4741
View File
File diff suppressed because it is too large. Load diff
-3349
View File
File diff suppressed because it is too large. Load diff
-4619
View File
File diff suppressed because it is too large. Load diff
-3822
View File
File diff suppressed because it is too large. Load diff
-5921
View File
File diff suppressed because it is too large. Load diff
-3796
View File
File diff suppressed because it is too large. Load diff
+18 -33
View File
@@ -1,24 +1,19 @@
# README: Tcl
This is the **Tcl 9.0a4** source distribution.
This is the **Tcl 9.1b1** source distribution.
You can get any source release of Tcl from [our distribution
site](https://sourceforge.net/projects/tcl/files/Tcl/).
8.6 (production release, daily build)
[![Build Status](https://github.com/tcltk/tcl/workflows/Linux/badge.svg?branch=core-8-6-branch)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Linux%22+branch%3Acore-8-6-branch)
[![Build Status](https://github.com/tcltk/tcl/workflows/Windows/badge.svg?branch=core-8-6-branch)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Windows%22+branch%3Acore-8-6-branch)
[![Build Status](https://github.com/tcltk/tcl/workflows/macOS/badge.svg?branch=core-8-6-branch)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22macOS%22+branch%3Acore-8-6-branch)
9.1 (in development, daily build)
[![Build Status](https://github.com/tcltk/tcl/actions/workflows/linux-build.yml/badge.svg?branch=main)](https://github.com/tcltk/tcl/actions/workflows/linux-build.yml?query=branch%3Amain)
[![Build Status](https://github.com/tcltk/tcl/actions/workflows/win-build.yml/badge.svg?branch=main)](https://github.com/tcltk/tcl/actions/workflows/win-build.yml?query=branch%3Amain)
[![Build Status](https://github.com/tcltk/tcl/actions/workflows/mac-build.yml/badge.svg?branch=main)](https://github.com/tcltk/tcl/actions/workflows/mac-build.yml?query=branch%3Amain)
<br>
8.7 (in development, daily build))
[![Build Status](https://github.com/tcltk/tcl/workflows/Linux/badge.svg?branch=core-8-branch)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Linux%22+branch%3Acore-8-branch)
[![Build Status](https://github.com/tcltk/tcl/workflows/Windows/badge.svg?branch=core-8-branch)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Windows%22+branch%3Acore-8-branch)
[![Build Status](https://github.com/tcltk/tcl/workflows/macOS/badge.svg?branch=core-8-branch)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22macOS%22+branch%3Acore-8-branch)
<br>
9.0 (in development, daily build))
[![Build Status](https://github.com/tcltk/tcl/workflows/Linux/badge.svg?branch=main)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Linux%22+branch%3Amain)
[![Build Status](https://github.com/tcltk/tcl/workflows/Windows/badge.svg?branch=main)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Windows%22+branch%3Amain)
[![Build Status](https://github.com/tcltk/tcl/workflows/macOS/badge.svg?branch=main)](https://github.com/tcltk/tcl/actions?query=workflow%3A%22macOS%22+branch%3Amain)
9.0 (production release, daily build)
[![Build Status](https://github.com/tcltk/tcl/actions/workflows/linux-build.yml/badge.svg?branch=core-9-0-branch)](https://github.com/tcltk/tcl/actions/workflows/linux-build.yml?query=branch%3Acore-9-0-branch)
[![Build Status](https://github.com/tcltk/tcl/actions/workflows/win-build.yml/badge.svg?branch=core-9-0-branch)](https://github.com/tcltk/tcl/actions/workflows/win-build.yml?query=branch%3Acore-9-0-branch)
[![Build Status](https://github.com/tcltk/tcl/actions/workflows/mac-build.yml/badge.svg?branch=core-9-0-branch)](https://github.com/tcltk/tcl/actions/workflows/mac-build.yml?query=branch%3Acore-9-0-branch)
## Contents
1. [Introduction](#intro)
@@ -36,7 +31,7 @@ site](https://sourceforge.net/projects/tcl/files/Tcl/).
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.
way to create GUI applications that run on PCs, Unix, and macOS.
Tcl can also be used for a variety of web-related tasks and for creating
powerful command languages for applications.
@@ -56,7 +51,7 @@ and selling it either in whole or in part. See the file
## <a id="doc">2.</a> Documentation
Extensive documentation is available on our website.
The home page for this release, including new features, is
[here](https://www.tcl-lang.org/software/tcltk/9.0.html).
[here](https://www.tcl-lang.org/software/tcltk/9.1.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.
@@ -66,10 +61,10 @@ 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 9.0 is [online,
here](https://www.tcl-lang.org/man/tcl9.0/).
The complete set of reference manual entries for Tcl 9.1 is [online,
here](https://www.tcl-lang.org/man/tcl9.1/).
### <a id="doc.unix">2a.</a> Unix Documentation
### <a id="doc.unix"></a> Unix man pages
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
@@ -87,27 +82,17 @@ 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
## <a id="news">4.</a> News feeds
https://www.activestate.com/products/tcl/
You can keep up with the latest happenings in the Tcl world via
[fosstodon](https://fosstodon.org/@tcl_tk) or
[X](https://twitter.com/TclLang) feeds.
## <a id="complangtcl">5.</a> Tcl newsgroup
There is a USENET newsgroup, "`comp.lang.tcl`", intended for the exchange of
-9466
View File
File diff suppressed because it is too large. Load diff
+69
View File
@@ -0,0 +1,69 @@
The source code for Tcl is managed by fossil. Tcl developers coordinate all
changes to the Tcl source code at
> [Tcl Source Code](https://core.tcl-lang.org/tcl/timeline)
Release Tcl 9.1b1 arises from the check-in with tag `core-9-1-b1`.
Highlighted differences between Tcl 9.1 and Tcl 9.0 are summarized below,
with focus on changes important to programmers using the Tcl library and
writing Tcl scripts.
# New commands and options
- [New options `-backslashes`, `-commands` and `-variables` for `subst` command](https://core.tcl-lang.org/tips/doc/trunk/tip/712.md)
- [New command `unicode` for Unicode normalization](https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
- [New `timer` command, switch to monotonic clock and microsecond resolution](https://core.tcl-lang.org/tips/doc/trunk/tip/723.md)
- [Remove `expr` behavior from `lseq`](https://core.tcl-lang.org/tips/doc/trunk/tip/746.md) *Incompatibility*
- [File paths are now treated as case-insensitive on MacOS](https://core.tcl-lang.org/tcl/tktview/e6ca0b1b) *Incompatibility*
- New command `tcl::registry` as a synonym for the `registry` command without needing
the registry package to be loaded. The registry module is now part of the core
Tcl DLL in all build configurations.
- [New `lfilter` command for selecting items from a list](https://core.tcl-lang.org/tips/doc/trunk/tip/735.md)
- [Many new functions from C99](https://core.tcl-lang.org/tips/doc/trunk/tip/745.md), specifically: `acosh()`, `asinh()`, `atanh()`, `cbrt()`, `copysign()`, `dim()`, `erf()`, `erfc()`, `exp2()`, `expm1()`, `fma()`, `gamma()`, `ldexp()`, `lgamma()`, `log1p()`, `log2()`, `logb()`, `nextafter()`, `remainder()`, `signbit()`, and `trunc()`, and (for functions that return multiple values in their C99 API) the commands: `divmod`, `frexp`, `modf`, and `remquo`. (See [this page](https://en.cppreference.com/w/c/numeric/math.html) for more information about these functions; the Tcl functions are _intentionally_ only thin wrappers around the functions in the C99 standard.)
- [New `switch` option `-integer` to compare values as integers](https://core.tcl-lang.org/tips/doc/trunk/tip/730.md)
- [Reading and writing of child interpreter variables](https://core.tcl-lang.org/tips/doc/trunk/tip/728.md)
- [Updated Tcl Bytecode opcodes](https://core.tcl-lang.org/tips/doc/trunk/tip/720.md)
- New `tcltest::configure` option `-iterations` to control number of iterations of each test.
# New public C API
- [`Tcl_IsEmpty()` &mdash; checks if the string representation of a value would be the empty string](https://core.tcl-lang.org/tips/doc/trunk/tip/711.md)
- [`Tcl_GetEncodingNameForUser()` &mdash; returns name of encoding from user settings](https://core.tcl-lang.org/tips/doc/trunk/tip/716.md)
- [`Tcl_AttemptCreateHashEntry()` &mdash; version of `Tcl_CreateHashEntry()` that returns NULL instead of panic'ing on memory allocation errors](https://core.tcl-lang.org/tips/doc/trunk/tip/717.md)
- [`Tcl_ListObjRange()`, `Tcl_ListObjRepeat()`, `Tcl_ListObjReverse()` &mdash; C API for new list operations](https://core.tcl-lang.org/tips/doc/trunk/tip/649.md)
- [`Tcl_UtfToNormalized()`, `Tcl_UtfToNormalizedDString()` &mdash; C API for Unicode normalization](https://core.tcl-lang.org/tips/doc/trunk/tip/726.md)
- [`Tcl_UtfToExternalEx()` and `Tcl_ExternalToUtfEx()` &mdash; C encoding API supporting output buffers larger than INT_MAX](https://core.tcl-lang.org/tips/doc/trunk/tip/737.md)
- [New API for monotonic clock and microseconds resolution](https://core.tcl-lang.org/tips/doc/trunk/tip/723.md)
- [Windows `auto_execok` enhancements and `exec` search reform](https://core.tcl-lang.org/tips/doc/trunk/tip/753.md)
- [New timer API using long long in stead of Tcl_Time](https://core.tcl-lang.org/tips/doc/trunk/tip/752.md)
# Changes in interpreter initialization
- [Custom applications must call Tcl\_FindExecutable or TclZipfs_AppHook to initialize Tcl](https://core.tcl-lang.org/tips/doc/trunk/tip/732.md) *Potential incompatibility*
- [Search path for locating Tcl core script and encodings is changed](https://core.tcl-lang.org/tips/doc/trunk/tip/732.md) *Potential incompatibility*
- [`Tcl_RegisterPostInitProc` callback for post-initialization of interpreters](https://core.tcl-lang.org/tips/doc/trunk/tip/755.md)
# Performance
- [Memory efficient internal representations](https://core.tcl-lang.org/tcl/wiki?name=New+abstract+list+representations)
for list operations on large lists.
- [Continued 64-bit capacity: Command line arguments larger than 2Gb](https://core.tcl-lang.org/tips/doc/trunk/tip/626.md)
- [Support for long paths on Windows](https://core.tcl-lang.org/tips/doc/trunk/tip/744.md)
- [Faster UTF-8 encoding and I/O](https://core.tcl-lang.org/tcl/wiki?name=Faster+UTF+encoding)
- Faster interpreter creation
# Bug fixes
- [Inconsistent `glob` matching on MacOS](https://core.tcl-lang.org/tcl/tktview/e6ca0b1b)
- [`file normalize` does not uniquely identify a file on MacOS](https://core.tcl-lang.org/tcl/tktview/10890417)
- [Inconsistencies between `cd` and `file normalize` for volume-relative paths on Windows](https://core.tcl-lang.org/tcl/tktview/bca391ab)
- [Tcl cannot run from an arbitrary build directory with --disable-zipfs](https://core.tcl-lang.org/tcl/tktview/006bef5d)
- [Crash on finalization with an active thread running.](https://core.tcl-lang.org/tcl/tktview/e55a589d)
- [Crash on use-after-free in Windows socket thread.](https://core.tcl-lang.org/tcl/tktview/06f19cc4)
# Updated bundled packages, libraries, standards, data
- Unicode 18.0.0 (draft)
- platorm 1.2b1
-21
View File
@@ -1,21 +0,0 @@
/*
* dirent.h --
*
* This file is a replacement for <dirent.h> in systems that
* support the old BSD-style <sys/dir.h> with a "struct direct".
*
* Copyright (c) 1991 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.
*/
#ifndef _DIRENT
#define _DIRENT
#include <sys/dir.h>
#define dirent direct
#endif /* _DIRENT */
-53
View File
@@ -1,53 +0,0 @@
/*
* dirent.h --
*
* Declarations of a library of directory-reading procedures
* in the POSIX style ("struct dirent").
*
* Copyright (c) 1991 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.
*/
#ifndef _DIRENT
#define _DIRENT
/*
* Dirent structure, which holds information about a single
* directory entry.
*/
#define MAXNAMLEN 255
#define DIRBLKSIZ 512
struct dirent {
long d_ino; /* Inode number of entry */
short d_reclen; /* Length of this record */
short d_namlen; /* Length of string in d_name */
char d_name[MAXNAMLEN + 1]; /* Name must be no longer than this */
};
/*
* State that keeps track of the reading of a directory (clients
* should never look inside this structure; the fields should
* only be accessed by the library procedures).
*/
typedef struct _dirdesc {
int dd_fd;
long dd_loc;
long dd_size;
char dd_buf[DIRBLKSIZ];
} DIR;
/*
* Procedures defined for reading directories:
*/
extern void closedir (DIR *dirp);
extern DIR * opendir (char *name);
extern struct dirent * readdir (DIR *dirp);
#endif /* _DIRENT */
+19 -19
View File
@@ -43,32 +43,32 @@ TCL_DECLARE_MUTEX(netdbMutex)
static size_t
strlcpy(char *dst, const char *src, size_t siz)
{
char *d = dst;
const char *s = src;
size_t n = siz;
char *d = dst;
const char *s = src;
size_t n = siz;
/* Copy as many bytes as will fit */
if (n != 0 && --n != 0) {
do {
if ((*d++ = *s++) == 0)
break;
} while (--n != 0);
}
/* Copy as many bytes as will fit */
if (n != 0 && --n != 0) {
do {
if ((*d++ = *s++) == 0)
break;
} while (--n != 0);
}
/* Not enough room in dst, add NUL and traverse rest of src */
if (n == 0) {
if (siz != 0)
*d = '\0'; /* NUL-terminate dst */
while (*s++)
;
}
/* Not enough room in dst, add NUL and traverse rest of src */
if (n == 0) {
if (siz != 0)
*d = '\0'; /* NUL-terminate dst */
while (*s++)
;
}
return(s - src - 1); /* count does not include NUL */
return(s - src - 1); /* count does not include NUL */
}
#endif
int fake_getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
size_t hostlen, char *serv, size_t servlen, int flags)
size_t hostlen, char *serv, size_t servlen, int flags)
{
struct sockaddr_in *sin = (struct sockaddr_in *)sa;
struct hostent *hp;
+1 -1
View File
@@ -4,7 +4,7 @@
* This file provides the gettimeofday function on systems
* that only have the System V ftime function.
*
* Copyright (c) 1995 Sun Microsystems, Inc.
* Copyright © 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.
-64
View File
@@ -1,64 +0,0 @@
/*
* memcmp.c --
*
* Source code for the "memcmp" library routine.
*
* Copyright (c) 1998 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 "tclPort.h"
/*
* Here is the prototype just in case it is not included in tclPort.h.
*/
int memcmp(const void *s1, const void *s2, size_t n);
/*
*----------------------------------------------------------------------
*
* memcmp --
*
* Compares two bytes sequences.
*
* Results:
* Compares its arguments, looking at the first n bytes (each interpreted
* as an unsigned char), and returns an integer less than, equal to, or
* greater than 0, according as s1 is less than, equal to, or greater
* than s2 when taken to be unsigned 8 bit numbers.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
int
memcmp(
const void *s1, /* First string. */
const void *s2, /* Second string. */
size_t n) /* Length to compare. */
{
const unsigned char *ptr1 = (const unsigned char *) s1;
const unsigned char *ptr2 = (const unsigned char *) s2;
for ( ; n-- ; ptr1++, ptr2++) {
unsigned char u1 = *ptr1, u2 = *ptr2;
if (u1 != u2) {
return (u1-u2);
}
}
return 0;
}
/*
* Local Variables:
* mode: c
* c-basic-offset: 4
* fill-column: 78
* End:
*/
+1 -1
View File
@@ -3,7 +3,7 @@
*
* Source code for the "mkstemp" library routine.
*
* Copyright (c) 2009 Donal K. Fellows
* Copyright © 2009 Donal K. Fellows
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
-110
View File
@@ -1,110 +0,0 @@
/*
* opendir.c --
*
* This file provides dirent-style directory-reading procedures for V7
* Unix systems that don't have such procedures. The origin of this code
* is unclear, but it seems to have come originally from Larry Wall.
*/
#include "tclInt.h"
#undef DIRSIZ
#define DIRSIZ(dp) \
((sizeof(struct dirent) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3))
/*
* open a directory.
*/
DIR *
opendir(
char *name)
{
DIR *dirp;
int fd;
const char *myname;
myname = ((*name == '\0') ? "." : name);
if ((fd = open(myname, 0, 0)) == -1) {
return NULL;
}
dirp = (DIR *) Tcl_Alloc(sizeof(DIR));
if (dirp == NULL) {
/* unreachable? */
close(fd);
return NULL;
}
dirp->dd_fd = fd;
dirp->dd_loc = 0;
return dirp;
}
/*
* read an old style directory entry and present it as a new one
*/
#ifndef pyr
#define ODIRSIZ 14
struct olddirect {
ino_t od_ino;
char od_name[ODIRSIZ];
};
#else /* a Pyramid in the ATT universe */
#define ODIRSIZ 248
struct olddirect {
long od_ino;
short od_fill1, od_fill2;
char od_name[ODIRSIZ];
};
#endif
/*
* get next entry in a directory.
*/
struct dirent *
readdir(
DIR *dirp)
{
struct olddirect *dp;
static struct dirent dir;
for (;;) {
if (dirp->dd_loc == 0) {
dirp->dd_size = read(dirp->dd_fd, dirp->dd_buf, DIRBLKSIZ);
if (dirp->dd_size <= 0) {
return NULL;
}
}
if (dirp->dd_loc >= dirp->dd_size) {
dirp->dd_loc = 0;
continue;
}
dp = (struct olddirect *)(dirp->dd_buf + dirp->dd_loc);
dirp->dd_loc += sizeof(struct olddirect);
if (dp->od_ino == 0) {
continue;
}
dir.d_ino = dp->od_ino;
strncpy(dir.d_name, dp->od_name, ODIRSIZ);
dir.d_name[ODIRSIZ] = '\0'; /* insure null termination */
dir.d_namlen = strlen(dir.d_name);
dir.d_reclen = DIRSIZ(&dir);
return &dir;
}
}
/*
* close a directory.
*/
void
closedir(
DIR *dirp)
{
close(dirp->dd_fd);
dirp->dd_fd = -1;
dirp->dd_loc = 0;
Tcl_Free(dirp);
}
-919
View File
@@ -1,919 +0,0 @@
/* 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
-39
View File
@@ -1,39 +0,0 @@
/*
* stdlib.h --
*
* Declares facilities exported by the "stdlib" portion of the C library.
* 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 strtol/strtoul).
*
* Copyright (c) 1991 The Regents of the University of California.
* Copyright (c) 1994-1998 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
#ifndef _STDLIB
#define _STDLIB
extern void abort(void);
extern double atof(const char *string);
extern int atoi(const char *string);
extern long atol(const char *string);
extern void * calloc(unsigned long numElements, unsigned long size);
extern void exit(int status);
extern void free(void *blockPtr);
extern char * getenv(const char *name);
extern void * malloc(unsigned long numBytes);
extern void qsort(void *base, unsigned long n, unsigned long size, int (*compar)(
const void *element1, const void *element2));
extern void * realloc(void *ptr, unsigned long numBytes);
extern char * realpath(const char *path, char *resolved_path);
extern int mkstemps(char *templ, int suffixlen);
extern int mkstemp(char *templ);
extern char * mkdtemp(char *templ);
extern long strtol(const char *string, char **endPtr, int base);
extern unsigned long strtoul(const char *string, char **endPtr, int base);
#endif /* _STDLIB */
-53
View File
@@ -1,53 +0,0 @@
/*
* string.h --
*
* Declarations of ANSI C library procedures for string handling.
*
* Copyright (c) 1991-1993 The Regents of the University of California.
* Copyright (c) 1994-1996 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
#ifndef _STRING
#define _STRING
/*
* The following #include is needed to define size_t. (This used to include
* sys/stdtypes.h but that doesn't exist on older versions of SunOS, e.g.
* 4.0.2, so I'm trying sys/types.h now.... hopefully it exists everywhere)
*/
#include <sys/types.h>
extern void * memchr(const void *s, int c, size_t n);
extern int memcmp(const void *s1, const void *s2, 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 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);
extern char * strchr(const char *string, int c);
extern int strcmp(const char *s1, const char *s2);
extern char * strcpy(char *dst, const char *src);
extern size_t strcspn(const char *string, const char *chars);
extern char * strdup(const char *string);
extern char * strerror(int error);
extern size_t strlen(const char *string);
extern int strncasecmp(const char *s1, const char *s2, size_t n);
extern char * strncat(char *dst, const char *src, size_t numChars);
extern int strncmp(const char *s1, const char *s2, size_t nChars);
extern char * strncpy(char *dst, const char *src, size_t numChars);
extern char * strpbrk(const char *string, const char *chars);
extern char * strrchr(const char *string, int c);
extern size_t strspn(const char *string, const char *chars);
extern char * strstr(const char *string, const char *substring);
extern char * strtok(char *s, const char *delim);
#endif /* _STRING */
+2 -2
View File
@@ -3,8 +3,8 @@
*
* Source code for the "strncasecmp" library routine.
*
* Copyright (c) 1988-1993 The Regents of the University of California.
* Copyright (c) 1995-1996 Sun Microsystems, Inc.
* Copyright © 1988-1993 The Regents of the University of California.
* Copyright © 1995-1996 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
-70
View File
@@ -1,70 +0,0 @@
/*
* strstr.c --
*
* Source code for the "strstr" library routine.
*
* 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 "tcl.h"
#ifndef NULL
#define NULL 0
#endif
/*
*----------------------------------------------------------------------
*
* strstr --
*
* Locate the first instance of a substring in a string.
*
* Results:
* If string contains substring, the return value is the location of the
* first matching instance of substring in string. If string doesn't
* contain substring, the return value is 0. Matching is done on an exact
* character-for-character basis with no wildcards or special characters.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
char *
strstr(
const char *string, /* String to search. */
const char *substring) /* Substring to try to find in string. */
{
const char *a, *b;
/*
* First scan quickly through the two strings looking for a
* single-character match. When it's found, then compare the rest of the
* substring.
*/
b = substring;
if (*b == 0) {
return (char *)string;
}
for ( ; *string != 0; string += 1) {
if (*string != *b) {
continue;
}
a = string;
while (1) {
if (*b == 0) {
return (char *)string;
}
if (*a++ != *b++) {
break;
}
}
b = substring;
}
return NULL;
}
-77
View File
@@ -1,77 +0,0 @@
/*
* strtol.c --
*
* Source code for the "strtol" library procedure.
*
* Copyright (c) 1988 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"
/*
*----------------------------------------------------------------------
*
* strtol --
*
* Convert an ASCII string into an integer.
*
* Results:
* The return value is the integer equivalent of string. If endPtr is
* non-NULL, then *endPtr is filled in with the character after the last
* one that was part of the integer. If string doesn't contain a valid
* integer value, then zero is returned and *endPtr is set to string.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
long int
strtol(
const char *string, /* String of ASCII digits, possibly preceded
* by white space. For bases greater than 10,
* either lower- or upper-case digits may be
* used. */
char **endPtr, /* Where to store address of terminating
* character, or NULL. */
int base) /* Base for conversion. Must be less than 37.
* If 0, then the base is chosen from the
* leading characters of string: "0x" means
* hex, "0" means octal, anything else means
* decimal. */
{
const char *p;
long result;
/*
* Skip any leading blanks.
*/
p = string;
while (isspace(UCHAR(*p))) {
p += 1;
}
/*
* Check for a sign.
*/
if (*p == '-') {
p += 1;
result = -(strtoul(p, endPtr, base));
} else {
if (*p == '+') {
p += 1;
}
result = strtoul(p, endPtr, base);
}
if ((result == 0) && (endPtr != 0) && (*endPtr == p)) {
*endPtr = (char *) string;
}
return result;
}
-214
View File
@@ -1,214 +0,0 @@
/*
* strtoul.c --
*
* Source code for the "strtoul" library procedure.
*
* Copyright (c) 1988 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"
/*
* The table below is used to convert from ASCII digits to a numerical
* equivalent. It maps from '0' through 'z' to integers (100 for non-digit
* characters).
*/
static const char cvtIn[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* '0' - '9' */
100, 100, 100, 100, 100, 100, 100, /* punctuation */
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, /* 'A' - 'Z' */
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35,
100, 100, 100, 100, 100, 100, /* punctuation */
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, /* 'a' - 'z' */
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35};
/*
*----------------------------------------------------------------------
*
* strtoul --
*
* Convert an ASCII string into an integer.
*
* Results:
* The return value is the integer equivalent of string. If endPtr is
* non-NULL, then *endPtr is filled in with the character after the last
* one that was part of the integer. If string doesn't contain a valid
* integer value, then zero is returned and *endPtr is set to string.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
unsigned long int
strtoul(
const char *string, /* String of ASCII digits, possibly preceded
* by white space. For bases greater than 10,
* either lower- or upper-case digits may be
* used. */
char **endPtr, /* Where to store address of terminating
* character, or NULL. */
int base) /* Base for conversion. Must be less than 37.
* If 0, then the base is chosen from the
* leading characters of string: "0x" means
* hex, "0" means octal, anything else means
* decimal. */
{
const char *p;
unsigned long int result = 0;
unsigned digit;
int anyDigits = 0;
int negative=0;
int overflow=0;
/*
* Skip any leading blanks.
*/
p = string;
while (isspace(UCHAR(*p))) {
p += 1;
}
if (*p == '-') {
negative = 1;
p += 1;
} else {
if (*p == '+') {
p += 1;
}
}
/*
* If no base was provided, pick one from the leading characters of the
* string.
*/
if (base == 0) {
if (*p == '0') {
p += 1;
if ((*p == 'x') || (*p == 'X')) {
p += 1;
base = 16;
} else {
/*
* Must set anyDigits here, otherwise "0" produces a "no
* digits" error.
*/
anyDigits = 1;
base = 8;
}
} else {
base = 10;
}
} else if (base == 16) {
/*
* Skip a leading "0x" from hex numbers.
*/
if ((p[0] == '0') && ((p[1] == 'x') || (p[1] == 'X'))) {
p += 2;
}
}
/*
* Sorry this code is so messy, but speed seems important. Do different
* things for base 8, 10, 16, and other.
*/
if (base == 8) {
unsigned long maxres = ULONG_MAX >> 3;
for ( ; ; p += 1) {
digit = *p - '0';
if (digit > 7) {
break;
}
if (result > maxres) { overflow = 1; }
result = (result << 3);
if (digit > (ULONG_MAX - result)) { overflow = 1; }
result += digit;
anyDigits = 1;
}
} else if (base == 10) {
unsigned long maxres = ULONG_MAX / 10;
for ( ; ; p += 1) {
digit = *p - '0';
if (digit > 9) {
break;
}
if (result > maxres) { overflow = 1; }
result *= 10;
if (digit > (ULONG_MAX - result)) { overflow = 1; }
result += digit;
anyDigits = 1;
}
} else if (base == 16) {
unsigned long maxres = ULONG_MAX >> 4;
for ( ; ; p += 1) {
digit = *p - '0';
if (digit > ('z' - '0')) {
break;
}
digit = cvtIn[digit];
if (digit > 15) {
break;
}
if (result > maxres) { overflow = 1; }
result = (result << 4);
if (digit > (ULONG_MAX - result)) { overflow = 1; }
result += digit;
anyDigits = 1;
}
} else if (base >= 2 && base <= 36) {
unsigned long maxres = ULONG_MAX / base;
for ( ; ; p += 1) {
digit = *p - '0';
if (digit > ('z' - '0')) {
break;
}
digit = cvtIn[digit];
if (digit >= ( (unsigned) base )) {
break;
}
if (result > maxres) { overflow = 1; }
result *= base;
if (digit > (ULONG_MAX - result)) { overflow = 1; }
result += digit;
anyDigits = 1;
}
}
/*
* See if there were any digits at all.
*/
if (!anyDigits) {
p = string;
}
if (endPtr != 0) {
/* unsafe, but required by the strtoul prototype */
*endPtr = (char *) p;
}
if (overflow) {
errno = ERANGE;
return ULONG_MAX;
}
if (negative) {
return -result;
}
return result;
}
+7 -3
View File
@@ -5,8 +5,8 @@
* that don't have waitpid but do have wait3. This code is based on a
* prototype version written by Mark Diekhans and Karl Lehenbauer.
*
* Copyright (c) 1993 The Regents of the University of California.
* Copyright (c) 1994 Sun Microsystems, Inc.
* Copyright © 1993 The Regents of the University of California.
* Copyright © 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.
@@ -156,7 +156,11 @@ waitpid(
goto waitAgain;
}
}
waitPtr = (WaitInfo *) Tcl_Alloc(sizeof(WaitInfo));
waitPtr = (WaitInfo *) Tcl_AttemptAlloc(sizeof(WaitInfo));
if (!waitPtr) {
errno = ENOMEM;
return -1;
}
waitPtr->pid = result;
waitPtr->status = status;
waitPtr->nextPtr = deadList;
+134
View File
@@ -0,0 +1,134 @@
# Copied from https://github.com/bazelbuild/bazel-central-registry/tree/main/modules/zlib/1.3.1.bcr.4/patches
# Adapted from https://github.com/protocolbuffers/protobuf/blob/master/third_party/zlib.BUILD
# Copyright 2008 Google Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * 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.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "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 COPYRIGHT
# OWNER OR CONTRIBUTORS 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.
#
# Code generated by the Protocol Buffer compiler is owned by the owner
# of the input file used when generating it. This code is not
# standalone and requires a support library to be linked with it. This
# support library is itself covered by the above license.
load("@rules_cc//cc:defs.bzl", "cc_library")
load("@rules_license//rules:license.bzl", "license")
package(
default_applicable_licenses = [":license"],
)
license(
name = "license",
license_kinds = ["@rules_license//licenses/spdx:Zlib"],
license_text = "LICENSE",
)
exports_files([
"LICENSE",
])
_ZLIB_HEADERS = [
"crc32.h",
"deflate.h",
"gzguts.h",
"inffast.h",
"inffixed.h",
"inflate.h",
"inftrees.h",
"trees.h",
"zconf.h",
"zlib.h",
"zutil.h",
]
_ZLIB_PREFIXED_HEADERS = ["zlib/include/" + hdr for hdr in _ZLIB_HEADERS]
# In order to limit the damage from the `includes` propagation
# via `:zlib`, copy the public headers to a subdirectory and
# expose those.
genrule(
name = "copy_public_headers",
srcs = _ZLIB_HEADERS,
outs = _ZLIB_PREFIXED_HEADERS,
cmd_bash = "cp $(SRCS) $(@D)/zlib/include/",
cmd_bat = " && ".join(
["@copy /Y \"$(location %s)\" \"$(@D)\\zlib\\include\\\" >NUL" %
s for s in _ZLIB_HEADERS],
),
)
config_setting(
name = "mingw_gcc_compiler",
flag_values = {
"@bazel_tools//tools/cpp:compiler": "mingw-gcc",
},
visibility = [":__subpackages__"],
)
cc_library(
name = "z",
srcs = [
"adler32.c",
"compress.c",
"crc32.c",
"deflate.c",
"gzclose.c",
"gzlib.c",
"gzread.c",
"gzwrite.c",
"infback.c",
"inffast.c",
"inflate.c",
"inftrees.c",
"trees.c",
"uncompr.c",
"zutil.c",
# Include the un-prefixed headers in srcs to work
# around the fact that zlib isn't consistent in its
# choice of <> or "" delimiter when including itself.
] + _ZLIB_HEADERS,
hdrs = _ZLIB_PREFIXED_HEADERS,
copts = select({
":mingw_gcc_compiler": [
"-fpermissive",
],
"@platforms//os:windows": [],
"//conditions:default": [
"-Wno-deprecated-non-prototype",
"-Wno-unused-variable",
"-Wno-implicit-function-declaration",
],
}),
includes = ["zlib/include/"],
visibility = ["//visibility:public"],
)
alias(
name = "zlib",
actual = ":z",
visibility = ["//visibility:public"],
)
+244 -147
View File
@@ -1,96 +1,126 @@
cmake_minimum_required(VERSION 2.4.4)
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
cmake_minimum_required(VERSION 3.12...3.31)
project(zlib C)
project(
zlib
LANGUAGES C
VERSION 1.3.2
HOMEPAGE_URL "https://zlib.net/"
DESCRIPTION "a general-purpose lossless data-compression library")
set(VERSION "1.2.13")
# ============================================================================
# CPack
# ============================================================================
set(CPACK_PACKAGE_VENDOR "zlib-Project")
set(CPACK_PACKAGE_DESCRIPTION_FILE ${zlib_SOURCE_DIR}/README)
set(CPACK_RESOURCE_FILE_LICENSE ${zlib_SOURCE_DIR}/LICENSE)
set(CPACK_RESOURCE_FILE_README ${zlib_SOURCE_DIR}/README)
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
# ============================================================================
# configuration
# ============================================================================
include(CheckTypeSize)
option(ZLIB_BUILD_TESTING "Enable Zlib Examples as tests" ON)
option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON)
option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON)
option(ZLIB_INSTALL "Enable installation of zlib" ON)
option(ZLIB_PREFIX "prefix for all types and library functions, see zconf.h.in"
OFF)
mark_as_advanced(ZLIB_PREFIX)
get_property(IS_MULTI GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT DEFINED CMAKE_BUILD_TYPE AND NOT IS_MULTI)
message(STATUS "No CMAKE_BUILD_TYPE set -- using Release")
set(CMAKE_BUILD_TYPE Release)
endif(NOT DEFINED CMAKE_BUILD_TYPE AND NOT IS_MULTI)
include(CheckCSourceCompiles)
include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckCSourceCompiles)
enable_testing()
include(CMakePackageConfigHelpers)
include(CheckTypeSize)
include(CPack)
include(GNUInstallDirs)
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
check_include_file(stdint.h HAVE_STDINT_H)
check_include_file(stddef.h HAVE_STDDEF_H)
set(CPACK_INCLUDED TRUE)
if(NOT ZLIB_CONF_WRITTEN)
set(Z_PREFIX ${ZLIB_PREFIX})
set(CONF_OUT_FILE ${zlib_BINARY_DIR}/zconf.h.cmakein)
file(READ ${zlib_SOURCE_DIR}/zconf.h ZCONF_CONTENT LIMIT 245)
file(WRITE ${CONF_OUT_FILE} ${ZCONF_CONTENT})
file(APPEND ${CONF_OUT_FILE} "#cmakedefine Z_PREFIX 1\n")
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_STDARG_H 1\n")
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_UNISTD_H 1\n")
file(READ ${zlib_SOURCE_DIR}/zconf.h ZCONF_CONTENT OFFSET 244)
set(FIRST_ITEM TRUE)
foreach(item IN LISTS ZCONF_CONTENT)
if(FIRST_ITEM)
string(APPEND OUT_CONTENT ${item})
set(FIRST_ITEM FALSE)
else(FIRST_ITEM)
string(APPEND OUT_CONTENT "\;" ${item})
endif(FIRST_ITEM)
endforeach(item IN LISTS ${ZCONF_CONTENT})
file(APPEND ${CONF_OUT_FILE} ${OUT_CONTENT})
set(ZLIB_CONF_WRITTEN
TRUE
CACHE BOOL "zconf.h.cmakein was created")
mark_as_advanced(ZLIB_CONF_WRITTEN)
endif(NOT ZLIB_CONF_WRITTEN)
#
# Check to see if we have large file support
#
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
# We add these other definitions here because CheckTypeSize.cmake
# in CMake 2.4.x does not automatically do so and we want
# compatibility with CMake 2.4.x.
if(HAVE_SYS_TYPES_H)
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
endif()
if(HAVE_STDINT_H)
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
endif()
if(HAVE_STDDEF_H)
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
endif()
check_type_size(off64_t OFF64_T)
if(HAVE_OFF64_T)
add_definitions(-D_LARGEFILE64_SOURCE=1)
endif()
set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable
#
# Check for fseeko
#
check_function_exists(fseeko HAVE_FSEEKO)
if(NOT HAVE_FSEEKO)
add_definitions(-DNO_FSEEKO)
endif()
#
# Check for stdarg.h
#
check_include_file(stdarg.h HAVE_STDARG_H)
#
# Check for unistd.h
#
check_include_file(unistd.h Z_HAVE_UNISTD_H)
check_include_file(unistd.h HAVE_UNISTD_H)
#
# Check visibility attribute is supported
#
if(MSVC)
set(CMAKE_DEBUG_POSTFIX "d")
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
endif()
set(CMAKE_REQUIRED_FLAGS "-WX")
else(MSVC)
set(CMAKE_REQUIRED_FLAGS "-Werror")
endif(MSVC)
if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
# If we're doing an out of source build and the user has a zconf.h
# in their source tree...
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
message(STATUS "Renaming")
message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
message(STATUS "to 'zconf.h.included' because this file is included with zlib")
message(STATUS "but CMake generates it automatically in the build directory.")
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
endif()
endif()
check_c_source_compiles(
"
#include <stdlib.h>
static void f(void) __attribute__ ((visibility(\"hidden\")));
int main(void) {return 0;}
"
HAVE___ATTR__VIS_HIDDEN)
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
${ZLIB_PC} @ONLY)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
unset(CMAKE_COMPILE_FLAGS)
set(ZLIB_PC ${zlib_BINARY_DIR}/zlib.pc)
configure_file(${zlib_SOURCE_DIR}/zlib.pc.cmakein ${ZLIB_PC} @ONLY)
configure_file(${zlib_BINARY_DIR}/zconf.h.cmakein ${zlib_BINARY_DIR}/zconf.h)
#============================================================================
# ============================================================================
# zlib
#============================================================================
# ============================================================================
set(ZLIB_PUBLIC_HDRS ${zlib_BINARY_DIR}/zconf.h zlib.h)
set(ZLIB_PUBLIC_HDRS
${CMAKE_CURRENT_BINARY_DIR}/zconf.h
zlib.h
)
set(ZLIB_PRIVATE_HDRS
crc32.h
deflate.h
@@ -100,8 +130,8 @@ set(ZLIB_PRIVATE_HDRS
inflate.h
inftrees.h
trees.h
zutil.h
)
zutil.h)
set(ZLIB_SRCS
adler32.c
compress.c
@@ -117,97 +147,164 @@ set(ZLIB_SRCS
inffast.c
trees.c
uncompr.c
zutil.c
)
zutil.c)
if(NOT MINGW)
set(ZLIB_DLL_SRCS
win32/zlib1.rc # If present will override custom build rule below.
)
endif()
if(WIN32)
set(zlib_static_suffix "s")
set(CMAKE_DEBUG_POSTFIX "d")
endif(WIN32)
# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
"\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
if(ZLIB_BUILD_SHARED)
add_library(
zlib SHARED ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}
$<$<OR:$<BOOL:${WIN32}>,$<BOOL:${CYGWIN}>>:win32/zlib1.rc>)
add_library(ZLIB::ZLIB ALIAS zlib)
target_include_directories(
zlib
PUBLIC $<BUILD_INTERFACE:${zlib_BINARY_DIR}>
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_definitions(
zlib
PRIVATE ZLIB_BUILD
$<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
$<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
$<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
set(INSTALL_VERSION ${zlib_VERSION})
if(MINGW)
# This gets us DLL resource information when compiling on MinGW.
if(NOT CMAKE_RC_COMPILER)
set(CMAKE_RC_COMPILER windres.exe)
endif()
if(NOT CYGWIN)
set_target_properties(zlib PROPERTIES SOVERSION ${zlib_VERSION_MAJOR}
VERSION ${INSTALL_VERSION})
endif(NOT CYGWIN)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
COMMAND ${CMAKE_RC_COMPILER}
-D GCC_WINDRES
-I ${CMAKE_CURRENT_SOURCE_DIR}
-I ${CMAKE_CURRENT_BINARY_DIR}
-o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
-i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
endif(MINGW)
set_target_properties(
zlib
PROPERTIES DEFINE_SYMBOL ZLIB_DLL
EXPORT_NAME ZLIB
OUTPUT_NAME z)
if(UNIX
AND NOT APPLE
AND NOT (CMAKE_SYSTEM_NAME STREQUAL AIX)
AND NOT (CMAKE_SYSTEM_NAME STREQUAL SunOS))
# On unix-like platforms the library is almost always called libz
set_target_properties(
zlib
PROPERTIES LINK_FLAGS
"-Wl,--version-script,\"${zlib_SOURCE_DIR}/zlib.map\"")
endif(
UNIX
AND NOT APPLE
AND NOT (CMAKE_SYSTEM_NAME STREQUAL AIX)
AND NOT (CMAKE_SYSTEM_NAME STREQUAL SunOS))
endif(ZLIB_BUILD_SHARED)
add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
set_target_properties(zlib PROPERTIES SOVERSION 1)
if(ZLIB_BUILD_STATIC)
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS}
${ZLIB_PRIVATE_HDRS})
add_library(ZLIB::ZLIBSTATIC ALIAS zlibstatic)
target_include_directories(
zlibstatic
PUBLIC $<BUILD_INTERFACE:${zlib_BINARY_DIR}>
$<BUILD_INTERFACE:${zlib_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_definitions(
zlibstatic
PRIVATE ZLIB_BUILD
$<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
$<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
$<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
$<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>)
set_target_properties(
zlibstatic PROPERTIES EXPORT_NAME ZLIBSTATIC OUTPUT_NAME
z${zlib_static_suffix})
endif(ZLIB_BUILD_STATIC)
if(NOT CYGWIN)
# This property causes shared libraries on Linux to have the full version
# encoded into their final filename. We disable this on Cygwin because
# it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll
# seems to be the default.
#
# This has no effect with MSVC, on that platform the version info for
# the DLL comes from the resource file win32/zlib1.rc
set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
endif()
if(ZLIB_INSTALL)
if(ZLIB_BUILD_SHARED)
install(
TARGETS zlib
COMPONENT Runtime
EXPORT zlibSharedExport
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(
EXPORT zlibSharedExport
FILE ZLIB-shared.cmake
NAMESPACE ZLIB::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
if(UNIX)
# On unix-like platforms the library is almost always called libz
set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
if(NOT APPLE)
set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
endif()
elseif(BUILD_SHARED_LIBS AND WIN32)
# Creates zlib1.dll when building shared library version
set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
endif()
if(MSVC)
install(
FILES $<TARGET_PDB_FILE:zlib>
COMPONENT Runtime
DESTINATION ${CMAKE_INSTALL_BINDIR}
CONFIGURATIONS Debug OR RelWithDebInfo
OPTIONAL)
endif(MSVC)
endif(ZLIB_BUILD_SHARED)
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
install(TARGETS zlib zlibstatic
RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
endif()
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
endif()
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3")
endif()
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
endif()
if(ZLIB_BUILD_STATIC)
install(
TARGETS zlibstatic
COMPONENT Development
EXPORT zlibStaticExport
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(
EXPORT zlibStaticExport
FILE ZLIB-static.cmake
NAMESPACE ZLIB::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
endif(ZLIB_BUILD_STATIC)
#============================================================================
# Example binaries
#============================================================================
configure_package_config_file(
${zlib_SOURCE_DIR}/zlibConfig.cmake.in
${zlib_BINARY_DIR}/ZLIBConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
add_executable(example test/example.c)
target_link_libraries(example zlib)
add_test(example example)
write_basic_package_version_file(
"${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake"
VERSION "${zlib_VERSION}"
COMPATIBILITY AnyNewerVersion)
add_executable(minigzip test/minigzip.c)
target_link_libraries(minigzip zlib)
install(FILES ${zlib_BINARY_DIR}/ZLIBConfig.cmake
${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib)
install(
FILES ${ZLIB_PUBLIC_HDRS}
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(
FILES zlib.3
COMPONENT Docs
DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
install(
FILES LICENSE
doc/algorithm.txt
doc/crc-doc.1.0.pdf
doc/rfc1950.txt
doc/rfc1951.txt
doc/rfc1952.txt
doc/txtvsbin.txt
COMPONENT Docs
DESTINATION "${CMAKE_INSTALL_DOCDIR}/zlib")
install(
FILES ${ZLIB_PC}
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endif(ZLIB_INSTALL)
if(HAVE_OFF64_T)
add_executable(example64 test/example.c)
target_link_libraries(example64 zlib)
set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
add_test(example64 example64)
# ============================================================================
# Tests
# ============================================================================
if(ZLIB_BUILD_TESTING)
enable_testing()
add_subdirectory(test)
endif(ZLIB_BUILD_TESTING)
add_executable(minigzip64 test/minigzip.c)
target_link_libraries(minigzip64 zlib)
set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
endif()
add_subdirectory(contrib)
+80 -1
View File
@@ -1,6 +1,85 @@
ChangeLog file for zlib
Changes in 1.3.2 (17 Feb 2026)
- Continued rewrite of CMake build [Vollstrecker]
- Various portability improvements
- Various github workflow additions and improvements
- Check for negative lengths in crc32_combine functions
- Copy only the initialized window contents in inflateCopy
- Prevent the use of insecure functions without an explicit request
- Add compressBound_z and deflateBound_z functions for large values
- Use atomics to build inflate fixed tables once
- Add definition of ZLIB_INSECURE to build tests with c89 and c94
- Add --undefined option to ./configure for UBSan checker
- Copy only the initialized deflate state in deflateCopy
- Zero inflate state on allocation
- Remove untgz from contrib
- Add _z versions of the compress and uncompress functions
- Vectorize the CRC-32 calculation on the s390x
- Set bit 11 of the zip header flags in minizip if UTF-8
- Update OS/400 support
- Add a test to configure to check for a working compiler
- Check for invalid NULL pointer inputs to zlib operations
- Add --mandir to ./configure to specify manual directory
- Add LICENSE.Info-Zip to contrib/minizip
- Remove vstudio projects in lieu of cmake-generated projects
- Replace strcpy() with memcpy() in contrib/minizip
Changes in 1.3.1.2 (8 Dec 2025)
- Improve portability to RISC OS
- Permit compiling contrib/minizip/unzip.c with decryption
- Enable build of shared library on AIX
- Make deflateBound() more conservative and handle Z_STREAM_END
- Add zipAlreadyThere() to minizip zip.c to help avoid duplicates
- Make z_off_t 64 bits by default
- Add deflateUsed() function to get the used bits in the last byte
- Avoid out-of-bounds pointer arithmetic in inflateCopy()
- Add Haiku to configure for proper LDSHARED settings
- Add Bazel targets
- Complete rewrite of CMake build [Vollstrecker]
- Clarify the use of errnum in gzerror()
- Note that gzseek() requests are deferred until the next operation
- Note the use of gzungetc() to run a deferred seek while reading
- Fix bug in inflatePrime() for 16-bit ints
- Add a "G" option to force gzip, disabling transparency in gzread()
- Improve the discrimination between trailing garbage and bad gzip
- Allow gzflush() to write empty gzip members
- Remove redundant frees of point list on error in examples/zran.c
- Clarify the use of inflateGetHeader()
- Update links to the RFCs
- Return all available uncompressed data on error in gzread.c
- Support non-blocking devices in the gz* routines
- Various other small improvements
Changes in 1.3.1 (22 Jan 2024)
- Reject overflows of zip header fields in minizip
- Fix bug in inflateSync() for data held in bit buffer
- Add LIT_MEM define to use more memory for a small deflate speedup
- Fix decision on the emission of Zip64 end records in minizip
- Add bounds checking to ERR_MSG() macro, used by zError()
- Neutralize zip file traversal attacks in miniunz
- Fix a bug in ZLIB_DEBUG compiles in check_match()
- Various portability and appearance improvements
Changes in 1.3 (18 Aug 2023)
- Remove K&R function definitions and zlib2ansi
- Fix bug in deflateBound() for level 0 and memLevel 9
- Fix bug when gzungetc() is used immediately after gzopen()
- Fix bug when using gzflush() with a very small buffer
- Fix crash when gzsetparams() attempted for transparent write
- Fix test/example.c to work with FORCE_STORED
- Rewrite of zran in examples (see zran.c version history)
- Fix minizip to allow it to open an empty zip file
- Fix reading disk number start on zip64 files in minizip
- Fix logic error in minizip argument processing
- Add minizip testing to Makefile
- Read multiple bytes instead of byte-by-byte in minizip unzip.c
- Add memory sanitizer to configure (--memory)
- Various portability improvements
- Various documentation improvements
- Various spelling and typo corrections
Changes in 1.2.13 (13 Oct 2022)
- Fix configure issue that discarded provided CC definition
- Correct incorrect inputs provided to the CRC functions
@@ -1445,7 +1524,7 @@ Changes in 0.99 (27 Jan 96)
- fix typo in Make_vms.com (f$trnlnm -> f$getsyi)
- in fcalloc, normalize pointer if size > 65520 bytes
- don't use special fcalloc for 32 bit Borland C++
- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc...
- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc.
- use Z_BINARY instead of BINARY
- document that gzclose after gzdopen will close the file
- allow "a" as mode in gzopen
+26 -23
View File
@@ -3,8 +3,8 @@
If your question is not there, please check the zlib home page
http://zlib.net/ which may have more recent information.
The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
https://zlib.net/ which may have more recent information.
The latest zlib FAQ is at https://zlib.net/zlib_faq.html
1. Is zlib Y2K-compliant?
@@ -14,13 +14,12 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
2. Where can I get a Windows DLL version?
The zlib sources can be compiled without change to produce a DLL. See the
file win32/DLL_FAQ.txt in the zlib distribution. Pointers to the
precompiled DLL are found in the zlib web site at http://zlib.net/ .
file win32/DLL_FAQ.txt in the zlib distribution.
3. Where can I get a Visual Basic interface to zlib?
See
* http://marknelson.us/1997/01/01/zlib-engine/
* https://zlib.net/nelson/
* win32/DLL_FAQ.txt in the zlib distribution
4. compress() returns Z_BUF_ERROR.
@@ -39,7 +38,7 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
made with more input or output space. A Z_BUF_ERROR may in fact be
unavoidable depending on how the functions are used, since it is not
possible to tell whether or not there is more output pending when
strm.avail_out returns with zero. See http://zlib.net/zlib_how.html for a
strm.avail_out returns with zero. See https://zlib.net/zlib_how.html for a
heavily annotated example.
6. Where's the zlib documentation (man pages, etc.)?
@@ -110,8 +109,8 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
16. Can zlib decode Flate data in an Adobe PDF file?
Yes. See http://www.pdflib.com/ . To modify PDF forms, see
http://sourceforge.net/projects/acroformtool/ .
Yes. See https://www.pdflib.com/ . To modify PDF forms, see
https://sourceforge.net/projects/acroformtool/ .
17. Why am I getting this "register_frame_info not found" error on Solaris?
@@ -157,6 +156,10 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
library memory allocation routines by default. zlib's *Init* functions
allow for the application to provide custom memory allocation routines.
If the non-default BUILDFIXED or DYNAMIC_CRC_TABLE defines are used on a
system without atomics (e.g. pre-C11), then inflate() and crc32() will not
be thread safe.
Of course, you should only operate on any given zlib or gzip stream from a
single thread at a time.
@@ -236,7 +239,7 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
As far as we know, no. In fact, that was originally the whole point behind
zlib. Look here for some more information:
http://www.gzip.org/#faq11
https://web.archive.org/web/20180729212847/http://www.gzip.org/#faq11
32. Can zlib work with greater than 4 GB of data?
@@ -259,20 +262,20 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
33. Does zlib have any security vulnerabilities?
The only one that we are aware of is potentially in gzprintf(). If zlib is
compiled to use sprintf() or vsprintf(), then there is no protection
against a buffer overflow of an 8K string space (or other value as set by
gzbuffer()), other than the caller of gzprintf() assuring that the output
will not exceed 8K. On the other hand, if zlib is compiled to use
snprintf() or vsnprintf(), which should normally be the case, then there is
no vulnerability. The ./configure script will display warnings if an
insecure variation of sprintf() will be used by gzprintf(). Also the
zlibCompileFlags() function will return information on what variant of
sprintf() is used by gzprintf().
compiled to use sprintf() or vsprintf(), which requires that ZLIB_INSECURE
be defined, then there is no protection against a buffer overflow of an 8K
string space (or other value as set by gzbuffer()), other than the caller
of gzprintf() assuring that the output will not exceed 8K. On the other
hand, if zlib is compiled to use snprintf() or vsnprintf(), which should
normally be the case, then there is no vulnerability. The ./configure
script will display warnings if an insecure variation of sprintf() will be
used by gzprintf(). Also the zlibCompileFlags() function will return
information on what variant of sprintf() is used by gzprintf().
If you don't have snprintf() or vsnprintf() and would like one, you can
find a portable implementation here:
find a good portable implementation in stb_sprintf.h here:
http://www.ijs.si/software/snprintf/
https://github.com/nothings/stb
Note that you should be using the most recent version of zlib. Versions
1.1.3 and before were subject to a double-free vulnerability, and versions
@@ -284,7 +287,7 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
Probably what you want is to use zlib in Java. zlib is already included
as part of the Java SDK in the java.util.zip package. If you really want
a version of zlib written in the Java language, look on the zlib home
page for links: http://zlib.net/ .
page for links: https://zlib.net/ .
35. I get this or that compiler or source-code scanner warning when I crank it
up to maximally-pedantic. Can't you guys write proper code?
@@ -315,9 +318,9 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
zlib doesn't support encryption. The original PKZIP encryption is very
weak and can be broken with freely available programs. To get strong
encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib
encryption, use GnuPG, https://www.gnupg.org/ , which already includes zlib
compression. For PKZIP compatible "encryption", look at
http://www.info-zip.org/
https://infozip.sourceforge.net/
39. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
+1 -2
View File
@@ -21,12 +21,11 @@ zlib.pc.cmakein zlib.pc template for cmake
zlib2ansi perl script to convert source files for C++ compilation
amiga/ makefiles for Amiga SAS C
as400/ makefiles for AS/400
doc/ documentation for formats and algorithms
msdos/ makefiles for MSDOS
nintendods/ makefile for Nintendo DS
old/ makefiles for various architectures and zlib documentation
files that have not yet been updated for zlib 1.2.x
os400/ makefiles for OS/400
qnx/ makefiles for QNX
watcom/ makefiles for OpenWatcom
win32/ makefiles for Windows
+22
View File
@@ -0,0 +1,22 @@
Copyright notice:
(C) 1995-2026 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu
+9
View File
@@ -0,0 +1,9 @@
module(
name = "zlib",
version = "0.0.0",
compatibility_level = 1,
)
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "rules_cc", version = "0.0.16")
bazel_dep(name = "rules_license", version = "1.0.0")
+46 -24
View File
@@ -1,5 +1,5 @@
# Makefile for zlib
# Copyright (C) 1995-2017 Jean-loup Gailly, Mark Adler
# Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
# For conditions of distribution and use, see copyright notice in zlib.h
# To compile and test, type:
@@ -13,6 +13,8 @@
# make install prefix=$HOME
CC=cc
GCOV=GCOV
LLVM_GCOV_FLAG=LLMV_GCOV_FLAG
CFLAGS=-O
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
@@ -22,13 +24,14 @@ CFLAGS=-O
SFLAGS=-O
LDFLAGS=
TEST_LDFLAGS=$(LDFLAGS) -L. libz.a
TEST_LIBS=-L. libz.a
LDSHARED=$(CC)
CPP=$(CC) -E
VGFMAFLAG=
STATICLIB=libz.a
SHAREDLIB=libz.so
SHAREDLIBV=libz.so.1.2.13
SHAREDLIBV=libz.so.1.3.2
SHAREDLIBM=libz.so.1
LIBS=$(STATICLIB) $(SHAREDLIBV)
@@ -112,16 +115,16 @@ test64: all64
fi
@rm -f tmp64_$$
infcover.o: $(SRCDIR)test/infcover.c $(SRCDIR)zlib.h zconf.h
$(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/infcover.c
infcover.o: $(SRCDIR)test/infcover.c $(SRCDIR)zlib.h zconf.h $(SRCDIR)inflate.h $(SRCDIR)inftrees.h
$(CC) $(CFLAGS) $(ZINCOUT) -c -coverage -o $@ $(SRCDIR)test/infcover.c
infcover: infcover.o libz.a
$(CC) $(CFLAGS) -o $@ infcover.o libz.a
$(CC) $(CFLAGS) -coverage -o $@ infcover.o libz.a
cover: infcover
rm -f *.gcda
${QEMU_RUN} ./infcover
gcov inf*.c
${GCOV} ${LLVM_GCOV_FLAG} inf*.c -o ./infcover.gcda
libz.a: $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
@@ -158,6 +161,9 @@ adler32.o: $(SRCDIR)adler32.c
crc32.o: $(SRCDIR)crc32.c
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)crc32.c
crc32_vx.o: $(SRCDIR)contrib/crc32vx/crc32_vx.c
$(CC) $(CFLAGS) $(VGFMAFLAG) $(ZINC) -c -o $@ $(SRCDIR)contrib/crc32vx/crc32_vx.c
deflate.o: $(SRCDIR)deflate.c
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)deflate.c
@@ -176,7 +182,7 @@ inftrees.o: $(SRCDIR)inftrees.c
trees.o: $(SRCDIR)trees.c
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)trees.c
zutil.o: $(SRCDIR)zutil.c
zutil.o: $(SRCDIR)zutil.c $(SRCDIR)gzguts.h
$(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)zutil.c
compress.o: $(SRCDIR)compress.c
@@ -208,6 +214,11 @@ crc32.lo: $(SRCDIR)crc32.c
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/crc32.o $(SRCDIR)crc32.c
-@mv objs/crc32.o $@
crc32_vx.lo: $(SRCDIR)contrib/crc32vx/crc32_vx.c
-@mkdir objs 2>/dev/null || test -d objs
$(CC) $(SFLAGS) $(VGFMAFLAG) $(ZINC) -DPIC -c -o objs/crc32_vx.o $(SRCDIR)contrib/crc32vx/crc32_vx.c
-@mv objs/crc32_vx.o $@
deflate.lo: $(SRCDIR)deflate.c
-@mkdir objs 2>/dev/null || test -d objs
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/deflate.o $(SRCDIR)deflate.c
@@ -238,7 +249,7 @@ trees.lo: $(SRCDIR)trees.c
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/trees.o $(SRCDIR)trees.c
-@mv objs/trees.o $@
zutil.lo: $(SRCDIR)zutil.c
zutil.lo: $(SRCDIR)zutil.c $(SRCDIR)gzguts.h
-@mkdir objs 2>/dev/null || test -d objs
$(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/zutil.o $(SRCDIR)zutil.c
-@mv objs/zutil.o $@
@@ -274,7 +285,7 @@ gzwrite.lo: $(SRCDIR)gzwrite.c
-@mv objs/gzwrite.o $@
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a $(SRCDIR)zlib.map
$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
rm -f $(SHAREDLIB) $(SHAREDLIBM)
ln -s $@ $(SHAREDLIB)
@@ -282,10 +293,10 @@ placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
-@rmdir objs
example$(EXE): example.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ example.o $(TEST_LIBS)
minigzip$(EXE): minigzip.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ minigzip.o $(TEST_LIBS)
examplesh$(EXE): example.o $(SHAREDLIBV)
$(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS) -L. $(SHAREDLIBV)
@@ -294,10 +305,10 @@ minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
$(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) -L. $(SHAREDLIBV)
example64$(EXE): example64.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ example64.o $(TEST_LIBS)
minigzip64$(EXE): minigzip64.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ minigzip64.o $(TEST_LIBS)
install-libs: $(LIBS)
-@if [ ! -d $(DESTDIR)$(exec_prefix) ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
@@ -349,18 +360,25 @@ docs: zlib.3.pdf
zlib.3.pdf: $(SRCDIR)zlib.3
groff -mandoc -f H -T ps $(SRCDIR)zlib.3 | ps2pdf - $@
zconf.h.cmakein: $(SRCDIR)zconf.h.in
-@ TEMPFILE=zconfh_$$; \
echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
sed -f $$TEMPFILE $(SRCDIR)zconf.h.in > $@ &&\
touch -r $(SRCDIR)zconf.h.in $@ &&\
rm $$TEMPFILE
# zconf.h.cmakein: $(SRCDIR)zconf.h.in
# -@ TEMPFILE=zconfh_$$; \
# echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
# sed -f $$TEMPFILE $(SRCDIR)zconf.h.in > $@ &&\
# touch -r $(SRCDIR)zconf.h.in $@ &&\
# rm $$TEMPFILE
#
zconf: $(SRCDIR)zconf.h.in
cp -p $(SRCDIR)zconf.h.in zconf.h
minizip-test: static
cd contrib/minizip && { CC="$(CC)" CFLAGS="$(CFLAGS)" $(MAKE) test ; cd ../.. ; }
minizip-clean:
cd contrib/minizip && { $(MAKE) clean ; cd ../.. ; }
mostlyclean: clean
clean:
clean: minizip-clean
rm -f *.o *.lo *~ \
example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
example64$(EXE) minigzip64$(EXE) \
@@ -372,7 +390,7 @@ clean:
rm -f contrib/infback9/*.gcda contrib/infback9/*.gcno contrib/infback9/*.gcov
maintainer-clean: distclean
distclean: clean zconf zconf.h.cmakein
distclean: clean zconf # zconf.h.cmakein
rm -f Makefile zlib.pc configure.log
-@rm -f .DS_Store
@if [ -f Makefile.in ]; then \
@@ -383,7 +401,8 @@ distclean: clean zconf zconf.h.cmakein
tags:
etags $(SRCDIR)*.[ch]
adler32.o zutil.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
adler32.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
zutil.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
gzclose.o gzlib.o gzread.o gzwrite.o: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
compress.o example.o minigzip.o uncompr.o: $(SRCDIR)zlib.h zconf.h
crc32.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
@@ -392,8 +411,10 @@ infback.o inflate.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.
inffast.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
inftrees.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
trees.o: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
crc32_vx.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)contrib/crc32vx/crc32_vx_hooks.h
adler32.lo zutil.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
adler32.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
zutil.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
gzclose.lo gzlib.lo gzread.lo gzwrite.lo: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
compress.lo example.lo minigzip.lo uncompr.lo: $(SRCDIR)zlib.h zconf.h
crc32.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
@@ -402,3 +423,4 @@ infback.lo inflate.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftree
inffast.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
inftrees.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
trees.lo: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
crc32_vx.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)contrib/crc32vx/crc32_vx_hooks.h
+18 -21
View File
@@ -1,10 +1,10 @@
ZLIB DATA COMPRESSION LIBRARY
zlib 1.2.13 is a general purpose data compression library. All the code is
thread safe. The data format used by the zlib library is described by RFCs
(Request for Comments) 1950 to 1952 in the files
http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
rfc1952 (gzip format).
zlib 1.3.2 is a general purpose data compression library. All the code is
thread safe (though see the FAQ for caveats). The data format used by the zlib
library is described by RFCs (Request for Comments) 1950 to 1952 at
https://datatracker.ietf.org/doc/html/rfc1950 (zlib format), rfc1951 (deflate
format) and rfc1952 (gzip format).
All functions of the compression library are documented in the file zlib.h
(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example
@@ -21,32 +21,31 @@ make_vms.com.
Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
<info@winimage.com> for the Windows DLL version. The zlib home page is
http://zlib.net/ . Before reporting a problem, please check this site to
https://zlib.net/ . Before reporting a problem, please check this site to
verify that you have the latest version of zlib; otherwise get the latest
version and check whether the problem still exists or not.
PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
PLEASE read the zlib FAQ https://zlib.net/zlib_faq.html before asking for help.
Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
issue of Dr. Dobb's Journal; a copy of the article is available at
http://marknelson.us/1997/01/01/zlib-engine/ .
https://zlib.net/nelson/ .
The changes made in version 1.2.13 are documented in the file ChangeLog.
The changes made in version 1.3.2 are documented in the file ChangeLog.
Unsupported third party contributions are provided in directory contrib/ .
zlib is available in Java using the java.util.zip package, documented at
http://java.sun.com/developer/technicalArticles/Programming/compression/ .
zlib is available in Java using the java.util.zip package. Follow the API
Documentation link at: https://docs.oracle.com/search/?q=java.util.zip .
A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is available
at CPAN (Comprehensive Perl Archive Network) sites, including
http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
A Perl interface to zlib and bzip2 written by Paul Marquess <pmqs@cpan.org>
can be found at https://github.com/pmqs/IO-Compress .
A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
available in Python 1.5 and later versions, see
http://docs.python.org/library/zlib.html .
https://docs.python.org/3/library/zlib.html .
zlib is built into tcl: http://wiki.tcl.tk/4610 .
zlib is built into tcl: https://wiki.tcl-lang.org/page/zlib .
An experimental package to read and write files in .zip format, written on top
of zlib by Gilles Vollant <info@winimage.com>, is available in the
@@ -64,15 +63,13 @@ Notes for some targets:
- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
when compiled with cc.
- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is
- On Digital Unix 4.0D (formerly OSF/1) on AlphaServer, the cc option -std1 is
necessary to get gzprintf working correctly. This is done by configure.
- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
other compilers. Use "make test" to check your compiler.
- gzdopen is not supported on RISCOS or BEOS.
- For PalmOs, see http://palmzlib.sourceforge.net/
- For PalmOs, see https://palmzlib.sourceforge.net/
Acknowledgments:
@@ -84,7 +81,7 @@ Acknowledgments:
Copyright notice:
(C) 1995-2022 Jean-loup Gailly and Mark Adler
(C) 1995-2026 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
+79
View File
@@ -0,0 +1,79 @@
# For building with cmake at least version 3.12 (minizip 3.12) is needed
In most cases the usual
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
will create everything you need, however if you want something off default you can adjust several options fit your needs.
Every option is list below (excluding the cmake-standard options), they can be set via cmake-gui or on cmdline with
-D<option>=ON/OFF
## ZLIB-options with defaults ##
ZLIB_BUILD_TESTING=ON -- Enable Zlib Examples as tests
ZLIB_BUILD_SHARED=ON -- Enable building zlib shared library
ZLIB_BUILD_STATIC=ON -- Enable building zlib static library
ZLIB_BUILD_MINIZIP=ON -- Enable building libminizip contrib library
If this option is turned on, additional options are available from minizip (see below)
ZLIB_INSTALL=ON -- Enable installation of zlib
ZLIB_PREFIX=OFF -- prefix for all types and library functions, see zconf.h.in
This option is only on windows available and may/will be turned off and removed somewhen in the future.
If you rely cmake for finding and using zlib, this can be turned off, as `zlib1.dll` will never be used.
## minizip-options with defaults ##
MINIZIP_BUILD_SHARED=ON -- Enable building minizip shared library
MINIZIP_BUILD_STATIC=ON -- Enable building minizip static library
MINIZIP_BUILD_TESTING=ON -- Enable testing of minizip
MINIZIP_ENABLE_BZIP2=ON -- Build minizip withj bzip2 support
A usable installation of bzip2 is needed or config will fail. Turn this option of in this case.
MINIZIP_INSTALL=ON -- Enable installation of minizip
This option is only available on mingw as they tend to name this lib different. Maybe this will also be
removed in the future as. If you rely cmake for finding and using zlib, this can be turned off, as
the other file will never be used.
## Using the libs ##
To pull in what you need it's enough to just write
find_package(ZLIB CONFIG)
or
find_package(minizip CONFIG)
in your CMakeLists.txt, however it is advised to specify what you really want via:
find_package(ZLIB CONFIG COMPONENTS shared static REQUIRED)
or
find_package(minizip CONFIG COMPONENTS shared static REQUIRED)
As it's possible to only build the shared or the static lib, you can make sure that everything you need
is found. If no COMPONENTS are requested, everything needs to be found to satisfy your request. If the
libraries are optional in you project, you can omit the REQUIRED and check yourself if the targets you
want to link against are created.
When you search for minizip, it will search zlib for you, so only one of both is needed.
## Imported targets ##
When found the following targets are created for you:
ZLIB::ZLIB and ZLIB::ZLIBSTATIC -- for zlib
MINIZIP::minizip and MINIZIP::minizipstatic -- for minizip
+5 -27
View File
@@ -7,8 +7,6 @@
#include "zutil.h"
local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
#define BASE 65521U /* largest prime smaller than 65536 */
#define NMAX 5552
/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
@@ -60,11 +58,7 @@ local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
#endif
/* ========================================================================= */
uLong ZEXPORT adler32_z(adler, buf, len)
uLong adler;
const Bytef *buf;
z_size_t len;
{
uLong ZEXPORT adler32_z(uLong adler, const Bytef *buf, z_size_t len) {
unsigned long sum2;
unsigned n;
@@ -131,20 +125,12 @@ uLong ZEXPORT adler32_z(adler, buf, len)
}
/* ========================================================================= */
uLong ZEXPORT adler32(adler, buf, len)
uLong adler;
const Bytef *buf;
uInt len;
{
uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len) {
return adler32_z(adler, buf, len);
}
/* ========================================================================= */
local uLong adler32_combine_(adler1, adler2, len2)
uLong adler1;
uLong adler2;
z_off64_t len2;
{
local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2) {
unsigned long sum1;
unsigned long sum2;
unsigned rem;
@@ -169,18 +155,10 @@ local uLong adler32_combine_(adler1, adler2, len2)
}
/* ========================================================================= */
uLong ZEXPORT adler32_combine(adler1, adler2, len2)
uLong adler1;
uLong adler2;
z_off_t len2;
{
uLong ZEXPORT adler32_combine(uLong adler1, uLong adler2, z_off_t len2) {
return adler32_combine_(adler1, adler2, len2);
}
uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
uLong adler1;
uLong adler2;
z_off64_t len2;
{
uLong ZEXPORT adler32_combine64(uLong adler1, uLong adler2, z_off64_t len2) {
return adler32_combine_(adler1, adler2, len2);
}
+37 -24
View File
@@ -1,5 +1,5 @@
/* compress.c -- compress a memory buffer
* Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
* Copyright (C) 1995-2026 Jean-loup Gailly, Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
@@ -18,18 +18,19 @@
compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
memory, Z_BUF_ERROR if there was not enough room in the output buffer,
Z_STREAM_ERROR if the level parameter is invalid.
The _z versions of the functions take size_t length arguments.
*/
int ZEXPORT compress2(dest, destLen, source, sourceLen, level)
Bytef *dest;
uLongf *destLen;
const Bytef *source;
uLong sourceLen;
int level;
{
int ZEXPORT compress2_z(Bytef *dest, z_size_t *destLen, const Bytef *source,
z_size_t sourceLen, int level) {
z_stream stream;
int err;
const uInt max = (uInt)-1;
uLong left;
z_size_t left;
if ((sourceLen > 0 && source == NULL) ||
destLen == NULL || (*destLen > 0 && dest == NULL))
return Z_STREAM_ERROR;
left = *destLen;
*destLen = 0;
@@ -48,29 +49,38 @@ int ZEXPORT compress2(dest, destLen, source, sourceLen, level)
do {
if (stream.avail_out == 0) {
stream.avail_out = left > (uLong)max ? max : (uInt)left;
stream.avail_out = left > (z_size_t)max ? max : (uInt)left;
left -= stream.avail_out;
}
if (stream.avail_in == 0) {
stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
stream.avail_in = sourceLen > (z_size_t)max ? max :
(uInt)sourceLen;
sourceLen -= stream.avail_in;
}
err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
} while (err == Z_OK);
*destLen = stream.total_out;
*destLen = (z_size_t)(stream.next_out - dest);
deflateEnd(&stream);
return err == Z_STREAM_END ? Z_OK : err;
}
int ZEXPORT compress2(Bytef *dest, uLongf *destLen, const Bytef *source,
uLong sourceLen, int level) {
int ret;
z_size_t got = *destLen;
ret = compress2_z(dest, &got, source, sourceLen, level);
*destLen = (uLong)got;
return ret;
}
/* ===========================================================================
*/
int ZEXPORT compress(dest, destLen, source, sourceLen)
Bytef *dest;
uLongf *destLen;
const Bytef *source;
uLong sourceLen;
{
int ZEXPORT compress_z(Bytef *dest, z_size_t *destLen, const Bytef *source,
z_size_t sourceLen) {
return compress2_z(dest, destLen, source, sourceLen,
Z_DEFAULT_COMPRESSION);
}
int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source,
uLong sourceLen) {
return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
}
@@ -78,9 +88,12 @@ int ZEXPORT compress(dest, destLen, source, sourceLen)
If the default memLevel or windowBits for deflateInit() is changed, then
this function needs to be updated.
*/
uLong ZEXPORT compressBound(sourceLen)
uLong sourceLen;
{
return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
(sourceLen >> 25) + 13;
z_size_t ZEXPORT compressBound_z(z_size_t sourceLen) {
z_size_t bound = sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
(sourceLen >> 25) + 13;
return bound < sourceLen ? (z_size_t)-1 : bound;
}
uLong ZEXPORT compressBound(uLong sourceLen) {
z_size_t bound = compressBound_z(sourceLen);
return (uLong)bound != bound ? (uLong)-1 : (uLong)bound;
}
+207 -51
View File
@@ -25,7 +25,7 @@ if test $SRCDIR = "."; then
ZINCOUT="-I."
SRCDIR=""
else
ZINC='-include zconf.h'
ZINC='-I. -include zconf.h'
ZINCOUT='-I. -I$(SRCDIR)'
SRCDIR="$SRCDIR/"
fi
@@ -44,9 +44,8 @@ STATICLIB=libz.a
# extract zlib version numbers from zlib.h
VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < ${SRCDIR}zlib.h`
VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < ${SRCDIR}zlib.h`
VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
VER3=`echo ${VER}|sed -n -e 's/\([0-9]\{1,\}\(\\.[0-9]\{1,\}\)\{1,2\}\).*/\1/p'`
VER1=`echo ${VER}|sed -n -e 's/\([0-9]\{1,\}\)\\..*/\1/p'`
# establish commands for library building
if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
@@ -88,9 +87,15 @@ zprefix=0
zconst=0
build64=0
gcc=0
clang=0
warn=0
debug=0
sanitize=0
address=0
memory=0
undefined=0
insecure=0
unknown=0
enable_crcvx=1
old_cc="$CC"
old_cflags="$CFLAGS"
OBJC='$(OBJZ) $(OBJG)'
@@ -102,7 +107,7 @@ leave()
if test "$*" != "0"; then
echo "** $0 aborting." | tee -a configure.log
fi
rm -f $test.[co] $test $test$shared_ext $test.gcno ./--version
rm -rf $test.[co] $test $test$shared_ext $test.gcno $test.dSYM ./--version
echo -------------------- >> configure.log
echo >> configure.log
echo >> configure.log
@@ -116,38 +121,49 @@ case "$1" in
-h* | --help)
echo 'usage:' | tee -a configure.log
echo ' configure [--const] [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' | tee -a configure.log
echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
echo ' [--insecure] [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
echo ' [--includedir=INCLUDEDIR] [--mandir=MANDIR]' | tee -a configure.log
echo ' [--archs="-arch i386 -arch x86_64"] [--disable-crcvx]' | tee -a configure.log
exit 0 ;;
-p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
-e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;
-l*=* | --libdir=*) libdir=`echo $1 | sed 's/.*=//'`; shift ;;
--sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/.*=//'`; shift ;;
-i*=* | --includedir=*) includedir=`echo $1 | sed 's/.*=//'`;shift ;;
-u*=* | --uname=*) uname=`echo $1 | sed 's/.*=//'`;shift ;;
-p*=* | --prefix=*) prefix=`echo $1 | sed 's/[^=]*=//'`; shift ;;
-e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/[^=]*=//'`; shift ;;
-l*=* | --libdir=*) libdir=`echo $1 | sed 's/[^=]*=//'`; shift ;;
--sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/[^=]*=//'`; shift ;;
-i*=* | --includedir=*) includedir=`echo $1 | sed 's/[^=]*=//'`;shift ;;
-m*=* | --mandir=*) mandir=`echo $1 | sed 's/[^=]*=//'`;shift ;;
-u*=* | --uname=*) uname=`echo $1 | sed 's/[^=]*=//'`;shift ;;
-p* | --prefix) prefix="$2"; shift; shift ;;
-e* | --eprefix) exec_prefix="$2"; shift; shift ;;
-l* | --libdir) libdir="$2"; shift; shift ;;
--sharedlibdir) sharedlibdir="$2"; shift; shift ;;
-i* | --includedir) includedir="$2"; shift; shift ;;
-m* | --mandir) mandir="$2"; shift; shift ;;
-u* | --uname) uname="$2"; shift; shift ;;
-s* | --shared | --enable-shared) shared=1; shift ;;
-t | --static) shared=0; shift ;;
-t | --static | --disable-shared) shared=0; shift ;;
--solo) solo=1; shift ;;
--cover) cover=1; shift ;;
-z* | --zprefix) zprefix=1; shift ;;
-6* | --64) build64=1; shift ;;
-a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;
-a*=* | --archs=*) ARCHS=`echo $1 | sed 's/[^=]*=//'`; shift ;;
-a* | --archs) ARCHS="$2"; shift; shift ;;
--sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;
--localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;
-c* | --const) zconst=1; shift ;;
-w* | --warn) warn=1; shift ;;
-w* | --warn) warn=$((warn + 1)); shift ;;
-d* | --debug) debug=1; shift ;;
--sanitize) sanitize=1; shift ;;
*)
echo "unknown option: $1" | tee -a configure.log
echo "$0 --help for help" | tee -a configure.log
leave 1;;
--sanitize) address=1; shift ;;
--address) address=1; shift ;;
--memory) memory=1; shift ;;
--undefined) undefined=1; shift ;;
--insecure) insecure=1; shift ;;
--disable-crcvx) enable_crcvx=0; shift ;;
*) unknown=1; echo "unknown option ignored: $1" | tee -a configure.log; shift;;
esac
done
if test $unknown -eq 1; then
echo "$0 --help for help" | tee -a configure.log
fi
# temporary file name
test=ztest$$
@@ -182,37 +198,88 @@ else
fi
case "$cc" in
*gcc*) gcc=1 ;;
*clang*) gcc=1 ;;
*gcc*) gcc=1
GCOV="gcov" ;;
*clang*) gcc=1
clang=1 ;;
esac
case `$cc -v 2>&1` in
*gcc*) gcc=1 ;;
*clang*) gcc=1 ;;
*gcc*) gcc=1
GCOV="gcov" ;;
*clang*) gcc=1
clang=1 ;;
esac
if test $cover -eq 1; then
if test "$clang" -eq 1; then
if test "$cc" = "clang"; then
if command -v llvm-cov >/dev/null 2>&1; then
GCOV="llvm-cov"
LLVM_GCOV_FLAG="gcov"
GCOV="llvm-cov"
LLVM_GCOV_FLAG="gcov"
echo "Using ${GCOV} for coverage"
else
cover=0
GCOV=""
LLVM_GCOV_FLAG=""
echo "Deactivating cover as no suitable gcov can be found"
fi
else
clangV=`echo "$cc" | sed -e 's/^.*-//'`
if command -v llvm-cov-${clangV} >/dev/null 2>&1; then
GCOV="llvm-cov-${clangV}"
LLVM_GCOV_FLAG="gcov"
echo "Using ${GCOV} for coverage"
else
cover=0
GCOV=""
LLVM_GCOV_FLAG=""
echo "Deactivating cover as no suitable gcov can be found"
fi
fi
fi
fi
show $cc -c $test.c
if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
echo ... using gcc >> configure.log
CC="$cc"
CFLAGS="${CFLAGS--O3}"
SFLAGS="${CFLAGS--O3} -fPIC"
CFLAGS="${CFLAGS--O3} -fPIC"
SFLAGS="${CFLAGS--O3}"
if test "$ARCHS"; then
CFLAGS="${CFLAGS} ${ARCHS}"
SFLAGS="${SFLAGS} ${ARCHS}"
LDFLAGS="${LDFLAGS} ${ARCHS}"
fi
if test $build64 -eq 1; then
CFLAGS="${CFLAGS} -m64"
SFLAGS="${SFLAGS} -m64"
fi
if test "$warn" -eq 1; then
if test "$zconst" -eq 1; then
CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual -DZLIB_CONST"
else
CFLAGS="${CFLAGS} -Wall -Wextra"
if test "$warn" -ge 1; then
CFLAGS="${CFLAGS} -Wall -Wextra"
if test "$warn" -ge 2; then
CFLAGS="${CFLAGS} -Wconversion -Wshadow -Wundef"
fi
fi
if test $sanitize -eq 1; then
CFLAGS="${CFLAGS} -g -fsanitize=address"
if test "$zconst" -eq 1; then
if test "$warn" -ge 1; then
CFLAGS="${CFLAGS} -Wcast-qual"
fi
CFLAGS="${CFLAGS} -DZLIB_CONST"
fi
if test $address -eq 1; then
CFLAGS="${CFLAGS} -g -fsanitize=address -fno-omit-frame-pointer"
fi
if test $memory -eq 1; then
CFLAGS="${CFLAGS} -g -fsanitize=memory -fno-omit-frame-pointer"
fi
if test $undefined -eq 1; then
CFLAGS="${CFLAGS} -g -fsanitize=undefined -fno-omit-frame-pointer"
fi
if test $insecure -eq 1; then
CFLAGS="${CFLAGS} -DZLIB_INSECURE"
SFLAGS="${SFLAGS} -DZLIB_INSECURE"
fi
if test $debug -eq 1; then
CFLAGS="${CFLAGS} -DZLIB_DEBUG"
@@ -222,7 +289,7 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
uname=`(uname -s || echo unknown) 2>/dev/null`
fi
case "$uname" in
Linux* | linux* | *-linux* | GNU | GNU/* | solaris*)
Linux* | linux* | *-linux* | GNU | GNU/* | solaris* | Haiku)
case "$mname" in
*sparc*)
LDFLAGS="${LDFLAGS} -Wl,--no-warn-rwx-segments" ;;
@@ -253,6 +320,7 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
SHAREDLIB='libz.sl' ;;
esac ;;
AIX*)
LDSHARED=${LDSHARED-"$cc -shared"}
LDFLAGS="${LDFLAGS} -Wl,-brtl" ;;
Darwin* | darwin* | *-darwin*)
shared_ext='.dylib'
@@ -260,7 +328,9 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
SHAREDLIBV=libz.$VER$shared_ext
SHAREDLIBM=libz.$VER1$shared_ext
LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}
if libtool -V 2>&1 | grep Apple > /dev/null; then
if "${CROSS_PREFIX}libtool" -V 2>&1 | grep Apple > /dev/null; then
AR="${CROSS_PREFIX}libtool"
elif libtool -V 2>&1 | grep Apple > /dev/null; then
AR="libtool"
else
AR="/usr/bin/libtool"
@@ -356,7 +426,12 @@ else
AIX*) # Courtesy of dbakker@arrayasolutions.com
SFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
CFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
LDSHARED=${LDSHARED-"xlc -G"} ;;
LDSHARED=${LDSHARED-"xlc -G"}
if test $build64 -eq 1; then
CFLAGS="${CFLAGS} -q64"
SFLAGS="${SFLAGS} -q64"
ARFLAGS="-X64 ${ARFLAGS}"
fi ;;
# send working options for other systems to zlib@gzip.org
*) SFLAGS=${CFLAGS-"-O"}
CFLAGS=${CFLAGS-"-O"}
@@ -417,6 +492,13 @@ tryboth()
cat > $test.c << EOF
int foo() { return 0; }
EOF
echo "Checking for compiler..." >> configure.log
if try $CC -c $test.c; then
:
else
echo "Missing or broken C compiler." | tee -a configure.log
leave 1
fi
echo "Checking for obsessive-compulsive compiler options..." >> configure.log
if try $CC -c $CFLAGS $test.c; then
:
@@ -435,8 +517,8 @@ EOF
if test $shared -eq 1; then
echo Checking for shared library support... | tee -a configure.log
# we must test in two steps (cc then ld), required at least on SunOS 4.x
if try $CC -w -c $SFLAGS $test.c &&
try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
if try $CC -c $SFLAGS $test.c &&
try $LDSHARED $SFLAGS $LDFLAGS -o $test$shared_ext $test.o; then
echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
elif test -z "$old_cc" -a -z "$old_cflags"; then
echo No shared library support. | tee -a configure.log
@@ -498,7 +580,7 @@ int main(void) {
}
EOF
fi
if try $CC $CFLAGS -o $test $test.c; then
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
sizet=`./$test`
echo "Checking for a pointer-size integer type..." $sizet"." | tee -a configure.log
CFLAGS="${CFLAGS} -DNO_SIZE_T=${sizet}"
@@ -532,7 +614,7 @@ int main(void) {
return 0;
}
EOF
if try $CC $CFLAGS -o $test $test.c; then
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
echo "Checking for fseeko... Yes." | tee -a configure.log
else
CFLAGS="${CFLAGS} -DNO_FSEEKO"
@@ -549,7 +631,7 @@ cat > $test.c <<EOF
#include <errno.h>
int main() { return strlen(strerror(errno)); }
EOF
if try $CC $CFLAGS -o $test $test.c; then
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
echo "Checking for strerror... Yes." | tee -a configure.log
else
CFLAGS="${CFLAGS} -DNO_STRERROR"
@@ -568,7 +650,7 @@ cat > $test.c <<EOF
int main() { return 0; }
EOF
if try $CC -c $CFLAGS $test.c; then
sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/ HAVE_UNISTD_H-0\(.*\) may be/ 1\1 was/" > zconf.temp.h
mv zconf.temp.h zconf.h
echo "Checking for unistd.h... Yes." | tee -a configure.log
else
@@ -583,7 +665,7 @@ cat > $test.c <<EOF
int main() { return 0; }
EOF
if try $CC -c $CFLAGS $test.c; then
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/ HAVE_STDARG_H-0\(.*\) may be/ 1\1 was/" > zconf.temp.h
mv zconf.temp.h zconf.h
echo "Checking for stdarg.h... Yes." | tee -a configure.log
else
@@ -611,7 +693,6 @@ fi
# if code coverage testing was requested, use older gcc if defined, e.g. "gcc-4.2" on Mac OS X
if test $cover -eq 1; then
CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
if test -n "$GCC_CLASSIC"; then
CC=$GCC_CLASSIC
fi
@@ -656,7 +737,7 @@ int main()
return (mytest("Hello%d\n", 1));
}
EOF
if try $CC $CFLAGS -o $test $test.c; then
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
echo >> configure.log
@@ -696,7 +777,10 @@ EOF
echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log
echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
echo " vulnerabilities." | tee -a configure.log
if test $insecure -ne 1; then
echo " The --insecure option must be provided to ./configure in order to" | tee -a configure.log
echo " compile using the insecure vsprintf() function." | tee -a configure.log
fi
echo >> configure.log
cat >$test.c <<EOF
#include <stdio.h>
@@ -746,7 +830,7 @@ int main()
}
EOF
if try $CC $CFLAGS -o $test $test.c; then
if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
echo >> configure.log
@@ -780,7 +864,10 @@ EOF
echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log
echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
echo " vulnerabilities." | tee -a configure.log
if test $insecure -ne 1; then
echo " The --insecure option must be provided to ./configure in order to" | tee -a configure.log
echo " compile using the insecure sprintf() function." | tee -a configure.log
fi
echo >> configure.log
cat >$test.c <<EOF
#include <stdio.h>
@@ -828,6 +915,70 @@ EOF
fi
fi
# check for ibm s390x build
HAVE_S390X=0
cat > $test.c << EOF
#ifndef __s390x__
#error
#endif
EOF
if try $CC -c $CFLAGS $test.c; then
echo "Checking for s390x build ... Yes." | tee -a configure.log
HAVE_S390X=1
else
echo "Checking for s390x build ... No." | tee -a configure.log
fi
# check for ibm s390x vx vector extensions
HAVE_S390X_VX=0
if test $HAVE_S390X -eq 1 && test $enable_crcvx -eq 1 ; then
# preset the compiler specific flags
if test $clang -eq 1; then
VGFMAFLAG=-fzvector
else
VGFMAFLAG=-mzarch
fi
cat > $test.c <<EOF
#ifndef __s390x__
#error
#endif
#include <vecintrin.h>
int main(void) {
unsigned long long a __attribute__((vector_size(16))) = { 0 };
unsigned long long b __attribute__((vector_size(16))) = { 0 };
unsigned char c __attribute__((vector_size(16))) = { 0 };
c = vec_gfmsum_accum_128(a, b, c);
return c[0];
}
EOF
# cflags already contains a valid march
if try $CC -c $CFLAGS $VGFMAFLAG $test.c; then
echo "Checking for s390x vx vector extension ... Yes." | tee -a configure.log
HAVE_S390X_VX=1
# or set march for our compile units
elif try $CC -c $CFLAGS $VGFMAFLAG -march=z13 $test.c; then
echo "Checking for s390x vx vector extension (march=z13) ... Yes." | tee -a configure.log
HAVE_S390X_VX=1
VGFMAFLAG="$VGFMAFLAG -march=z13"
# else we are not on s390x
else
echo "Checking for s390x vx vector extension ... No." | tee -a configure.log
fi
# prepare compiling for s390x
if test $HAVE_S390X_VX -eq 1; then
CFLAGS="$CFLAGS -DHAVE_S390X_VX"
SFLAGS="$SFLAGS -DHAVE_S390X_VX"
OBJC="$OBJC crc32_vx.o"
PIC_OBJC="$PIC_OBJC crc32_vx.lo"
else
# target has no vx extension
VGFMAFLAG=""
fi
fi
# show the results in the log
echo >> configure.log
echo ALL = $ALL >> configure.log
@@ -859,10 +1010,15 @@ echo mandir = $mandir >> configure.log
echo prefix = $prefix >> configure.log
echo sharedlibdir = $sharedlibdir >> configure.log
echo uname = $uname >> configure.log
echo HAVE_S390X = $HAVE_S390X >> configure.log
echo HAVE_S390X_VX = $HAVE_S390X_VX >> configure.log
echo VGFMAFLAG = $VGFMAFLAG >> configure.log
# udpate Makefile with the configure results
# update Makefile with the configure results
sed < ${SRCDIR}Makefile.in "
/^CC *=/s#=.*#=$CC#
/^GCOV *=/s#=.*#=$GCOV#
/^LLVM_GCOV_FLAG *=/s#=.*#=$LLVM_GCOV_FLAG#
/^CFLAGS *=/s#=.*#=$CFLAGS#
/^SFLAGS *=/s#=.*#=$SFLAGS#
/^LDFLAGS *=/s#=.*#=$LDFLAGS#
+61
View File
@@ -0,0 +1,61 @@
function(zlib_add_contrib_lib name description dir)
option(ZLIB_BUILD_${name} "Enable building of ${description}" OFF)
if(ZLIB_BUILD_${name})
if(NOT DEFINED ZLIB_${name}_BUILD_SHARED)
set(ZLIB_${name}_BUILD_SHARED ${ZLIB_BUILD_SHARED} CACHE BOOL "")
endif(NOT DEFINED ZLIB_${name}_BUILD_SHARED)
if(NOT DEFINED ZLIB_${name}_BUILD_STATIC)
set(ZLIB_${name}_BUILD_STATIC ${ZLIB_BUILD_STATIC} CACHE BOOL "")
endif(NOT DEFINED ZLIB_${name}_BUILD_STATIC)
if(NOT DEFINED ZLIB_${name}_BUILD_TESTING)
set(ZLIB_${name}_BUILD_TESTING ${ZLIB_BUILD_TESTING} CACHE BOOL "")
endif(NOT DEFINED ZLIB_${name}_BUILD_TESTING)
if(NOT DEFINED ZLIB_${name}_INSTALL)
set(ZLIB_${name}_INSTALL ${ZLIB_INSTALL} CACHE BOOL "")
endif(NOT DEFINED ZLIB_${name}_INSTALL)
add_subdirectory(${dir}/)
endif(ZLIB_BUILD_${name})
endfunction(zlib_add_contrib_lib name description dir)
function(zlib_add_contrib_feature name description dir)
if(ARGC EQUAL 4)
set(default_on ${ARGV3})
else()
set(default_on Off)
endif()
option(ZLIB_WITH_${name}
"Enable build ${description}"
${default_on})
if(ZLIB_WITH_${name})
add_subdirectory(${dir}/)
endif(ZLIB_WITH_${name})
endfunction(zlib_add_contrib_feature name description dir)
zlib_add_contrib_feature("GVMAT64"
"of an optimized longest_match for 32 bits x86_64"
gcc_gvmat64)
zlib_add_contrib_feature(INFBACK9 "with support for method 9 deflate" infback9)
zlib_add_contrib_feature(CRC32VX "with S390X-CRC32VX implementation" crc32vx)
zlib_add_contrib_lib(ADA "Ada bindings" ada)
zlib_add_contrib_lib(BLAST "blast binary" blast)
zlib_add_contrib_lib(IOSTREAM3 "IOStream C++ bindings V3" iostream3)
zlib_add_contrib_lib(MINIZIP "minizip library" minizip)
zlib_add_contrib_lib(PUFF "puff decompress library" puff)
if(WIN32)
zlib_add_contrib_lib(TESTZLIB "testzlib binary" testzlib)
if (ZLIB_BUILD_ZLIB1_DLL)
add_subdirectory(zlib1-dll/)
endif (ZLIB_BUILD_ZLIB1_DLL)
option(ZLIB_BUILD_ZLIB1_DLL "Build the legacy zlib + minizip DLL" OFF)
endif(WIN32)
+8 -8
View File
@@ -6,7 +6,7 @@ for help about these, not the zlib authors. Thanks.
ada/ by Dmitriy Anisimkov <anisimkov@yahoo.com>
Support for Ada
See http://zlib-ada.sourceforge.net/
See https://zlib-ada.sourceforge.net/
blast/ by Mark Adler <madler@alumni.caltech.edu>
Decompressor for output of PKWare Data Compression Library (DCL)
@@ -37,7 +37,7 @@ iostream3/ by Ludwig Schwardt <schwardt@sun.ac.za>
minizip/ by Gilles Vollant <info@winimage.com>
Mini zip and unzip based on zlib
Includes Zip64 support by Mathias Svensson <mathias@result42.com>
See http://www.winimage.com/zLibDll/minizip.html
See https://www.winimage.com/zLibDll/minizip.html
pascal/ by Bob Dellaca <bobdl@xtra.co.nz> et al.
Support for Pascal
@@ -46,12 +46,12 @@ puff/ by Mark Adler <madler@alumni.caltech.edu>
Small, low memory usage inflate. Also serves to provide an
unambiguous description of the deflate format.
crc32vx/ by Ilya Leoshkevich <iii@linux.ibm.com>
Hardware-accelerated CRC32 on IBM Z with Z13 VX extension.
testzlib/ by Gilles Vollant <info@winimage.com>
Example of the use of zlib
untgz/ by Pedro A. Aranda Gutierrez <paag@tid.es>
A very simple tar.gz file extractor using zlib
vstudio/ by Gilles Vollant <info@winimage.com>
Building a minizip-enhanced zlib with Microsoft Visual Studio
Includes vc11 from kreuzerkrieg and vc12 from davispuh
zlib1-dll/
by @Vollstrecker on github.com
Build the legacy zlib1.dll with zlib and minizip.
+217
View File
@@ -0,0 +1,217 @@
cmake_minimum_required(VERSION 3.12...3.31)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
project(
zlibAda
VERSION 1.0.0
LANGUAGES C ADA
DESCRIPTION "A library for creating zipfiles based in zlib"
HOMEPAGE_URL "https://www.zlib.net")
option(ZLIB_ADA_BUILD_SHARED "Enable building ada bindings shared library" ON)
option(ZLIB_ADA_BUILD_STATIC "Enable building ada bindings static library" ON)
option(ZLIB_ADA_BUILD_TESTING "Enable building tests for ada bindings library" ON)
if(WIN32 OR CYGWIN)
set(zlib_Ada_static_suffix "s")
set(CMAKE_DEBUG_POSTFIX "d")
endif(WIN32 OR CYGWIN)
if(NOT DEFINED ZLIB_BUILD_ADA)
if(ZLIB_ADA_BUILD_SHARED)
list(APPEND REQUIRED_COMPONENTS "shared")
endif(ZLIB_ADA_BUILD_SHARED)
if(ZLIB_ADA_BUILD_STATIC)
list(APPEND REQUIRED_COMPONENTS "static")
endif(ZLIB_ADA_BUILD_STATIC)
find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG)
endif(NOT DEFINED ZLIB_BUILD_ADA)
function(ZLIB_ADA_findTestEnv testName)
set(testEnv "PATH=")
if(MSVC OR MINGW)
set(separator "\\\;")
else()
set(separator ":")
endif()
string(APPEND testEnv "$<TARGET_FILE_DIR:ZLIB::ZLIB>${separator}")
string(APPEND testEnv "$ENV{PATH}")
set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
endfunction(ZLIB_ADA_findTestEnv testName)
if(ZLIB_ADA_BUILD_SHARED)
ada_add_library(zlib_ada_Ada SHARED
zlib-thin.adb
zlib.adb)
set_target_properties(zlib_ada_Ada
PROPERTIES OUTPUT_NAME zlib-ada)
target_link_libraries(zlib_ada_Ada
INTERFACE ZLIB::ZLIB)
ada_add_library(zlib_ada_streams SHARED
zlib-streams.adb)
target_link_libraries(zlib_ada_streams
PUBLIC
zlib_ada_Ada)
ada_find_ali(zlib_ada_streams)
if(ZLIB_ADA_BUILD_TESTING)
enable_testing()
ada_add_executable(zlib_ada_test test.adb)
target_link_libraries(zlib_ada_test
PRIVATE
zlib_ada_Ada
zlib_ada_streams)
ada_find_ali(zlib_ada_test)
add_test(NAME zlib_ada_ada-test COMMAND zlib_ada_test)
set_tests_properties(zlib_ada_ada-test PROPERTIES FIXTURES_REQUIRED zlib_ada_cleanup)
if(MSVC
OR MSYS
OR MINGW
OR CYGWIN)
zlib_ada_findtestenv(zlib_ada_ada-test)
endif(
MSVC
OR MSYS
OR MINGW
OR CYGWIN)
ada_add_executable(zlib_ada_buffer_demo buffer_demo.adb)
target_link_libraries(zlib_ada_buffer_demo
PRIVATE
zlib_ada_Ada)
ada_find_ali(zlib_ada_buffer_demo)
add_test(NAME zlib_ada_buffer-demo COMMAND zlib_ada_buffer_demo)
if(MSVC
OR MSYS
OR MINGW
OR CYGWIN)
zlib_ada_findtestenv(zlib_ada_buffer-demo)
endif(
MSVC
OR MSYS
OR MINGW
OR CYGWIN)
ada_add_executable(zlib_ada_mtest mtest.adb)
target_link_libraries(zlib_ada_mtest
PRIVATE
zlib_ada_Ada)
ada_find_ali(zlib_ada_mtest)
#Not adding test as this is an endless-loop
ada_add_executable(zlib_ada_read read.adb)
target_link_libraries(zlib_ada_read
PRIVATE
zlib_ada_Ada)
ada_find_ali(zlib_ada_read)
add_test(NAME zlib_ada_read COMMAND zlib_ada_read)
if(MSVC
OR MSYS
OR MINGW
OR CYGWIN)
zlib_ada_findtestenv(zlib_ada_read)
endif(
MSVC
OR MSYS
OR MINGW
OR CYGWIN)
endif(ZLIB_ADA_BUILD_TESTING)
endif(ZLIB_ADA_BUILD_SHARED)
if(ZLIB_ADA_BUILD_STATIC)
ada_add_library(zlib_ada_AdaStatic STATIC
zlib-thin.adb
zlib.adb)
target_link_libraries(zlib_ada_AdaStatic
INTERFACE ZLIB::ZLIBSTATIC)
set_target_properties(zlib_ada_AdaStatic
PROPERTIES OUTPUT_NAME zlib-ada${zlib_Ada_static_suffix})
ada_add_library(zlib_ada_streamsStatic STATIC
zlib-streams.adb)
target_link_libraries(zlib_ada_streamsStatic
PUBLIC
zlib_ada_AdaStatic)
ada_find_ali(zlib_ada_streamsStatic)
if(ZLIB_ADA_BUILD_TESTING)
enable_testing()
ada_add_executable(zlib_ada_testStatic test.adb)
target_link_libraries(zlib_ada_testStatic
PRIVATE
zlib_ada_AdaStatic
zlib_ada_streamsStatic)
ada_find_ali(zlib_ada_testStatic)
add_test(NAME zlib_ada_testStatic COMMAND zlib_ada_testStatic)
set_tests_properties(zlib_ada_testStatic PROPERTIES FIXTURES_REQUIRED zlib_ada_cleanup)
ada_add_executable(zlib_ada_buffer-demoStatic buffer_demo.adb)
target_link_libraries(zlib_ada_buffer-demoStatic
PRIVATE
zlib_ada_AdaStatic)
ada_find_ali(zlib_ada_buffer-demoStatic)
add_test(NAME zlib_ada_buffer-demoStatic COMMAND zlib_ada_buffer-demoStatic)
ada_add_executable(zlib_ada_mtestStatic mtest.adb)
target_link_libraries(zlib_ada_mtestStatic
PRIVATE
zlib_ada_AdaStatic)
ada_find_ali(zlib_ada_mtestStatic)
# Not adding test as this is an endless-loop
ada_add_executable(zlib_ada_readStatic read.adb)
target_link_libraries(zlib_ada_readStatic
PRIVATE
zlib_ada_AdaStatic)
ada_find_ali(zlib_ada_readStatic)
add_test(NAME zlib_ada_readStatic COMMAND zlib_ada_readStatic)
endif(ZLIB_ADA_BUILD_TESTING)
endif(ZLIB_ADA_BUILD_STATIC)
if(ZLIB_ADA_BUILD_TESTING)
add_test(NAME zlib_ada_cleanup COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_CURRENT_BINARY_DIR}/testzlib.in
${CMAKE_CURRENT_BINARY_DIR}/testzlib.out ${CMAKE_CURRENT_BINARY_DIR}/testzlib.zlb)
set_tests_properties(zlib_ada_cleanup PROPERTIES FIXTURES_CLEANUP zlib_ada_cleanup)
endif(ZLIB_ADA_BUILD_TESTING)
@@ -0,0 +1,23 @@
set(CMAKE_ADA_COMPILER "@CMAKE_ADA_COMPILER@")
set(CMAKE_ADA_COMPILER_ARG1 "@CMAKE_ADA_COMPILER_ARG1@")
set(CMAKE_ADA_COMPILER_ID "@CMAKE_ADA_COMPILER_ID@")
set(CMAKE_ADA_COMPILER_VERSION "@CMAKE_ADA_COMPILER_VERSION@")
set(CMAKE_ADA_PLATFORM_ID "@CMAKE_ADA_PLATFORM_ID@")
set(CMAKE_AR "@CMAKE_AR@")
#set(CMAKE_RANLIB "@CMAKE_RANLIB@")
#set(CMAKE_LINKER "@CMAKE_LINKER@")
set(CMAKE_ADA_COMPILER_LOADED TRUE)
set(CMAKE_ADA_COMPILER_WORKS @CMAKE_ADA_COMPILER_WORKS@)
#set(CMAKE_ADA_ABI_COMPILED @CMAKE_ADA_ABI_COMPILED@)
set(CMAKE_ADA_COMPILER_ENV_VAR "ADA")
set(CMAKE_ADA_COMPILER_ID_RUN TRUE)
set(CMAKE_ADA_SOURCE_FILE_EXTENSIONS adb;ADB)
set(CMAKE_ADA_IGNORE_EXTENSIONS ;o;O;obj;OBJ;ali)
set(CMAKE_ADA_BINDER_HELPER "@CMAKE_ADA_BINDER_HELPER@")
set(CMAKE_ADA_COMPILER_HELPER "@CMAKE_ADA_COMPILER_HELPER@")
set(CMAKE_ADA_EXE_LINK_HELPER "@CMAKE_ADA_EXE_LINK_HELPER@")
set(CMAKE_ADA_SHARED_LINK_HELPER "@CMAKE_ADA_SHARED_LINK_HELPER@")
set(CMAKE_ADA_STATIC_LINK_HELPER "@CMAKE_ADA_STATIC_LINK_HELPER@")
@@ -0,0 +1,133 @@
include(CMakeLanguageInformation)
set(CMAKE_ADA_OUTPUT_EXTENSION .o)
set(CMAKE_ADA_OUTPUT_EXTENSION_REPLACE TRUE)
if(CMAKE_USER_MAKE_RULES_OVERRIDE)
include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
endif(CMAKE_USER_MAKE_RULES_OVERRIDE)
if(CMAKE_USER_MAKE_RULES_OVERRIDE_ADA)
include(${CMAKE_USER_MAKE_RULES_OVERRIDE_ADA} RESULT_VARIABLE _override)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_ADA "${_override}")
endif(CMAKE_USER_MAKE_RULES_OVERRIDE_ADA)
set(CMAKE_ADA_FLAGS_INIT "$ENV{ADAFLAGS} ${CMAKE_ADA_FLAGS_INIT}")
string(APPEND CMAKE_ADA_FLAGS_INIT " ")
string(APPEND CMAKE_ADA_FLAGS_DEBUG_INIT " -g")
string(APPEND CMAKE_ADA_FLAGS_MINSIZEREL_INIT " -Os")
string(APPEND CMAKE_ADA_FLAGS_RELEASE_INIT " -O3")
string(APPEND CMAKE_ADA_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
cmake_initialize_per_config_variable(CMAKE_ADA_FLAGS "Flags used by the Ada compiler")
if(CMAKE_ADA_STANDARD_LIBRARIES_INIT)
set(CMAKE_ADA_STANDARD_LIBRARIES
"${CMAKE_ADA_STANDARD_LIBRARIES_INIT}"
CACHE
STRING "Libraries linked by default with all Ada applications.")
mark_as_advanced(CMAKE_ADA_STANDARD_LIBRARIES)
endif(CMAKE_ADA_STANDARD_LIBRARIES_INIT)
if(NOT CMAKE_ADA_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_COMPILER_LAUNCHER})
set(CMAKE_ADA_COMPILER_LAUNCHER
"$ENV{CMAKE_ADA_COMPILER_LAUNCHER}"
CACHE
STRING "Compiler launcher for Ada.")
endif(NOT CMAKE_ADA_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_COMPILER_LAUNCHER})
if(NOT CMAKE_ADA_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_LINKER_LAUNCHER})
set(CMAKE_ADA_LINKER_LAUNCHER
"$ENV{CMAKE_ADA_LINKER_LAUNCHER}"
CACHE
STRING "Linker launcher for Ada.")
endif(NOT CMAKE_ADA_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_ADA_LINKER_LAUNCHER})
include(CMakeCommonLanguageInclude)
_cmake_common_language_platform_flags(ADA)
if(NOT CMAKE_ADA_CREATE_SHARED_LIBRARY)
set(CMAKE_ADA_CREATE_SHARED_LIBRARY
"${CMAKE_ADA_BINDER_HELPER} <CMAKE_ADA_COMPILER> <OBJECTS> FLAGS <FLAGS> <LINK_FLAGS>"
"${CMAKE_ADA_SHARED_LINK_HELPER} <CMAKE_ADA_COMPILER> <TARGET> <OBJECTS> <LINK_LIBRARIES>")
endif(NOT CMAKE_ADA_CREATE_SHARED_LIBRARY)
if(NOT CMAKE_ADA_CREATE_STATIC_LIBRARY)
set(CMAKE_ADA_CREATE_STATIC_LIBRARY
"${CMAKE_ADA_STATIC_LINK_HELPER} ${CMAKE_AR} <TARGET> <OBJECTS>")
endif(NOT CMAKE_ADA_CREATE_STATIC_LIBRARY)
if(NOT CMAKE_ADA_COMPILE_OBJECT)
set(CMAKE_ADA_COMPILE_OBJECT
"${CMAKE_ADA_COMPILER_HELPER} <CMAKE_ADA_COMPILER> <OBJECT_DIR> <SOURCE> <FLAGS>")
endif(NOT CMAKE_ADA_COMPILE_OBJECT)
if(NOT CMAKE_ADA_LINK_EXECUTABLE)
set(CMAKE_ADA_LINK_EXECUTABLE
"${CMAKE_ADA_BINDER_HELPER} <CMAKE_ADA_COMPILER> <OBJECTS> FLAGS <FLAGS> <LINK_FLAGS>"
"${CMAKE_ADA_EXE_LINK_HELPER} <CMAKE_ADA_COMPILER> <TARGET> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> OBJ <OBJECTS> LIBS <LINK_LIBRARIES>")
endif(NOT CMAKE_ADA_LINK_EXECUTABLE)
function(ada_add_executable)
if(ARGC GREATER 1)
math(EXPR last_index "${ARGC} - 1")
foreach(source RANGE 1 ${last_index})
list(APPEND SOURCES ${ARGV${source}})
string(REPLACE ".adb" "" ali "${ARGV${source}}")
set(clean_file "CMakeFiles/${ARGV0}.dir/${ali}.ali")
list(APPEND CLEAN_FILES ${clean_file})
list(APPEND CLEAN_FILES b~${ali}.adb)
list(APPEND CLEAN_FILES b~${ali}.ads)
list(APPEND CLEAN_FILES b~${ali}.ali)
list(APPEND CLEAN_FILES b~${ali}.o)
endforeach(source RANGE 1 ${ARGC})
add_executable(${ARGV0} ${ARGV1} ${SOURCES})
set_target_properties(${ARGV0}
PROPERTIES
ADDITIONAL_CLEAN_FILES "${CLEAN_FILES}")
endif(ARGC GREATER 1)
endfunction(ada_add_executable)
function(ada_add_library)
if(ARGC GREATER 2)
math(EXPR last_index "${ARGC} - 1")
foreach(source RANGE 2 ${last_index})
list(APPEND SOURCES ${ARGV${source}})
string(REPLACE ".adb" "" ali "${ARGV${source}}")
set(clean_file "CMakeFiles/${ARGV0}.dir/${ali}.ali")
list(APPEND CLEAN_FILES ${clean_file})
list(APPEND CLEAN_FILES b~${ali}.adb)
list(APPEND CLEAN_FILES b~${ali}.ads)
list(APPEND CLEAN_FILES b~${ali}.ali)
list(APPEND CLEAN_FILES b~${ali}.o)
endforeach(source RANGE 2 ${ARGC})
add_library(${ARGV0} ${ARGV1} ${SOURCES})
set_target_properties(${ARGV0}
PROPERTIES
ADDITIONAL_CLEAN_FILES "${CLEAN_FILES};dummylib.adb;dummylib.ali;dummylib.o"
ALI_FLAG "-aO${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${ARGV0}.dir/")
endif(ARGC GREATER 2)
endfunction(ada_add_library)
function(ada_find_ali)
get_target_property(link_libs ${ARGV0} LINK_LIBRARIES)
foreach(lib IN LISTS link_libs)
get_target_property(ali ${lib} ALI_FLAG)
string(APPEND FLAGS ${ali} " ")
unset(ali)
endforeach(lib IN LISTS link_libs)
set_target_properties(${ARGV0}
PROPERTIES
LINK_FLAGS ${FLAGS})
endfunction(ada_find_ali)
set(CMAKE_ADA_INFORMATION_LOADED TRUE)
@@ -0,0 +1,33 @@
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
# Load system-specific compiler preferences for this language.
include(Platform/${CMAKE_SYSTEM_NAME}-Determine-Ada OPTIONAL)
include(Platform/${CMAKE_SYSTEM_NAME}-Ada OPTIONAL)
if(NOT CMAKE_ADA_COMPILER_NAMES)
set(CMAKE_ADA_COMPILER_NAMES gnat)
foreach(ver RANGE 11 99)
list(APPEND CMAKE_ADA_COMPILER_NAMES gnat-${ver})
endforeach(ver RANGE 11 99)
endif(NOT CMAKE_ADA_COMPILER_NAMES)
if(NOT CMAKE_ADA_COMPILER)
set(CMAKE_ADA_COMPILER_INIT NOTFOUND)
_cmake_find_compiler(ADA)
else(NOT CMAKE_REAL_ADA_COMPILER)
_cmake_find_compiler_path(ADA)
endif(NOT CMAKE_ADA_COMPILER)
mark_as_advanced(CMAKE_ADA_COMPILER)
set(CMAKE_ADA_COMPILER_ID "GNU")
set(CMAKE_ADA_BINDER_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/binder_helper.cmake")
set(CMAKE_ADA_COMPILER_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_helper.cmake")
set(CMAKE_ADA_EXE_LINK_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/exe_link_helper.cmake")
set(CMAKE_ADA_SHARED_LINK_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/shared_link_helper.cmake")
set(CMAKE_ADA_STATIC_LINK_HELPER "${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/static_link_helper.cmake")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/CMakeADACompiler.cmake.in
${CMAKE_PLATFORM_INFO_DIR}/CMakeADACompiler.cmake
@ONLY)
@@ -0,0 +1,46 @@
include(CMakeTestCompilerCommon)
unset(CMAKE_ADA_COMPILER_WORKS CACHE)
if(NOT CMAKE_ADA_COMPILER_WORKS)
PrintTestCompilerStatus("ADA" "")
set(_ADA_TEST_FILE "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CMakeTmp/main.adb")
file(WRITE ${_ADA_TEST_FILE}
"with Ada.Text_IO; use Ada.Text_IO;\n"
"\n"
"procedure main is\n"
"begin\n"
"Put_Line(\"Hello, World!\");\n"
"end Main;\n")
try_compile(CMAKE_ADA_COMPILER_WORKS ${CMAKE_BINARY_DIR}
${_ADA_TEST_FILE}
OUTPUT_VARIABLE __CMAKE_ADA_COMPILER_OUTPUT)
set(CMAKE_ADA_COMPILER_WORKS ${CMAKE_ADA_COMPILER_WORKS})
unset(CMAKE_ADA_COMPILER_WORKS CACHE)
set(ADA_TEST_WAS_RUN TRUE)
endif(NOT CMAKE_ADA_COMPILER_WORKS)
if(NOT CMAKE_ADA_COMPILER_WORKS)
PrintTestCompilerStatus("ADA" " -- broken")
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Determining if the Ada compiler works failed with "
"the following output:\n${__CMAKE_ADA_COMPILER_OUTPUT}\n\n")
message(FATAL_ERROR "The Ada compiler \"${CMAKE_ADA_COMPILER}\" "
"is not able to compile a simple test program.\nIt fails "
"with the following output:\n ${__CMAKE_ADA_COMPILER_OUTPUT}\n\n"
"CMake will not be able to correctly generate this project.")
else(NOT CMAKE_ADA_COMPILER_WORKS)
if(ADA_TEST_WAS_RUN)
PrintTestCompilerStatus("ADA" " -- works")
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Determining if the Ada compiler works passed with "
"the following output:\n${__CMAKE_ADA_COMPILER_OUTPUT}\n\n")
endif(ADA_TEST_WAS_RUN)
endif(NOT CMAKE_ADA_COMPILER_WORKS)
unset(__CMAKE_ADA_COMPILER_OUTPUT)
@@ -0,0 +1,47 @@
#CMAKE_ARGV0 = /path/to/cmake
#CMAKE_ARGV1 = -P
#CMAKE_ARGV2 = path/to/this/file
#CMAKE_ARGV3 = binder
#CMAKE_ARGV4 = ali
if(NOT CMAKE_ARGV3)
message(FATAL_ERROR "binder not set")
endif(NOT CMAKE_ARGV3)
string(REPLACE ".o" ".ali" ALI ${CMAKE_ARGV4})
set (REACHED_FLAGS FALSE)
#iterate over additional objects, only the main one is needed
foreach(arg RANGE 5 ${CMAKE_ARGC})
if(CMAKE_ARGV${arg} STREQUAL FLAGS)
set(REACHED_FLAGS TRUE)
continue()
endif(CMAKE_ARGV${arg} STREQUAL FLAGS)
string(SUBSTRING "${CMAKE_ARGV${arg}}" 0 2 start)
if(start STREQUAL "-O")
continue()
endif(start STREQUAL "-O")
if(REACHED_FLAGS)
list(APPEND FLAGS ${CMAKE_ARGV${arg}})
endif(REACHED_FLAGS)
endforeach(arg RANGE 5 CMAKE_ARGC)
#first see if there is a main function
execute_process(COMMAND ${CMAKE_ARGV3} bind ${ALI} ${FLAGS}
RESULT_VARIABLE MAIN_RESULT
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
if(MAIN_RESULT)
execute_process(COMMAND ${CMAKE_ARGV3} bind -n ${ALI} ${FLAGS}
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
endif(MAIN_RESULT)
if(RESULT)
message(FATAL_ERROR ${RESULT} ${ERROR})
endif(RESULT)
@@ -0,0 +1,32 @@
#CMAKE_ARGV0 = /path/to/cmake
#CMAKE_ARGV1 = -P
#CMAKE_ARGV2 = path/to/this/file
#CMAKE_ARGV3 = compiler
#CMAKE_ARGV4 = OBJECT-DIR
#CMAKE_ARGV5 = source-file
if(NOT CMAKE_ARGV3)
message(FATAL_ERROR "compiler not set")
endif(NOT CMAKE_ARGV3)
if(NOT CMAKE_ARGV4)
message(FATAL_ERROR "object dir not set")
endif(NOT CMAKE_ARGV4)
if(NOT CMAKE_ARGV5)
message(FATAL_ERROR "source not set")
endif(NOT CMAKE_ARGV5)
foreach(arg RANGE 6 ${CMAKE_ARGC})
list(APPEND FLAGS "${CMAKE_ARGV${arg}}")
endforeach(arg RANGE 6 ${CMAKE_ARGC})
execute_process(COMMAND ${CMAKE_ARGV3} compile ${FLAGS} ${CMAKE_ARGV5}
WORKING_DIRECTORY ${CMAKE_ARGV4}
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
if(RESULT)
message(FATAL_ERROR ${RESULT} ${ERROR})
endif(RESULT)
@@ -0,0 +1,53 @@
#CMAKE_ARGV0 = /path/to/cmake
#CMAKE_ARGV1 = -P
#CMAKE_ARGV2 = path/to/this/file
#CMAKE_ARGV3 = linker
#CMAKE_ARGV4 = output-name
#CMAKE_ARGV5...CMAKE_AGVN = OBJECTS
#CMAKE_ARGVN+1 = LIBS
#CMAKE_ARGVN+2...CMAKE_ARGVM libraries
if(NOT CMAKE_ARGV3)
message(FATAL_ERROR "linker not set")
endif(NOT CMAKE_ARGV3)
set(REACHED_LIBS FALSE)
set(REACHED_OBJ FALSE)
foreach(arg RANGE 5 ${CMAKE_ARGC})
if(CMAKE_ARGV${arg} STREQUAL LIBS)
set(REACHED_LIBS TRUE)
set(REACHED_OBJ FALSE)
continue()
endif(CMAKE_ARGV${arg} STREQUAL LIBS)
if(CMAKE_ARGV${arg} STREQUAL OBJ)
set(REACHED_LIBS FALSE)
set(REACHED_OBJ TRUE)
continue()
endif(CMAKE_ARGV${arg} STREQUAL OBJ)
if(CMAKE_ARGC EQUAL arg)
continue()
endif(CMAKE_ARGC EQUAL arg)
if(REACHED_LIBS)
list(APPEND LIBS "${CMAKE_ARGV${arg}}")
elseif(REACHED_OBJ AND NOT ALI)
string(REPLACE ".o" ".ali" ALI "${CMAKE_ARGV${arg}}")
else(REACHED_LIBS)
string(SUBSTRING "${CMAKE_ARGV${arg}}" 0 3 start)
if(NOT start STREQUAL -aO)
list(APPEND FLAGS "${CMAKE_ARGV${arg}}")
endif(NOT start STREQUAL -aO)
endif(REACHED_LIBS)
endforeach(arg RANGE 5 ${CMAKE_ARGC})
execute_process(COMMAND ${CMAKE_ARGV3} link ${ALI} -o ${CMAKE_ARGV4} ${FLAGS} ${OTHER_OBJECTS} ${LIBS}
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
if(RESULT)
message(FATAL_ERROR ${RESULT} ${ERROR})
endif(RESULT)
@@ -0,0 +1,52 @@
#CMAKE_ARGV0 = /path/to/cmake
#CMAKE_ARGV1 = -P
#CMAKE_ARGV2 = path/to/this/file
#CMAKE_ARGV3 = linker
#CMAKE_ARGV4 = output-name
#CMAKE_ARGV5...CMAKE_AGVN = OBJECTS
#CMAKE_ARGVN+1 = LIBS
#CMAKE_ARGVN+2...CMAKE_ARGVM libraries
if(NOT CMAKE_ARGV3)
message(FATAL_ERROR "linker not set")
endif(NOT CMAKE_ARGV3)
set(REACHED_FILES FALSE)
foreach(arg RANGE 5 ${CMAKE_ARGC})
if(CMAKE_ARGV${arg} STREQUAL "LIBS")
set(REACHED_FILES TRUE)
continue()
endif(CMAKE_ARGV${arg} STREQUAL "LIBS")
if(CMAKE_ARGC EQUAL arg)
continue()
endif(CMAKE_ARGC EQUAL arg)
if(REACHED_LIBS)
list(APPEND LIBS "${CMAKE_ARGV${arg}} ")
else(REACHED_LIBS)
list(APPEND OBJECT_FILES "${CMAKE_ARGV${arg}}")
endif(REACHED_LIBS)
endforeach(arg RANGE 5 ${CMAKE_ARGC})
file(WRITE dummylib.adb
"procedure dummylib is\n"
"begin\n"
" null;\n"
"end;\n")
execute_process(COMMAND ${CMAKE_ARGV3} compile -fPIC dummylib.adb
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
execute_process(COMMAND ${CMAKE_ARGV3} bind -n dummylib.ali
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
execute_process(COMMAND ${CMAKE_ARGV3} link -shared dummylib.ali -o ${CMAKE_ARGV4} ${OBJECT_FILES} ${LIBS}
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
if(RESULT)
message(FATAL_ERROR ${RESULT} ${ERROR})
endif(RESULT)
@@ -0,0 +1,25 @@
#CMAKE_ARGV0 = /path/to/cmake
#CMAKE_ARGV1 = -P
#CMAKE_ARGV2 = path/to/this/file
#CMAKE_ARGV3 = path/to/ar
#CMAKE_ARGV4 = output-name
#CMAKE_ARGV5...CMAKE_AGVN = OBJECTS
if(NOT CMAKE_ARGV3)
message(FATAL_ERROR "linker not set")
endif(NOT CMAKE_ARGV3)
foreach(arg RANGE 5 ${CMAKE_ARGC})
if(NOT CMAKE_ARGC EQUAL arg)
list(APPEND OBJECT_FILES "${CMAKE_ARGV${arg}}")
endif(NOT CMAKE_ARGC EQUAL arg)
endforeach(arg RANGE 6 ${CMAKE_ARGC})
execute_process(COMMAND ${CMAKE_ARGV3} rcs ${CMAKE_ARGV4} ${OBJECT_FILES}
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE dont_care
ERROR_VARIABLE ERROR)
if(RESULT)
message(FATAL_ERROR ${RESULT} ${ERROR})
endif(RESULT)
+4 -4
View File
@@ -2,14 +2,14 @@
Release 1.3
ZLib.Ada is a thick binding interface to the popular ZLib data
compression library, available at http://www.gzip.org/zlib/.
compression library, available at https://zlib.net/.
It provides Ada-style access to the ZLib C library.
Here are the main changes since ZLib.Ada 1.2:
- Attension: ZLib.Read generic routine have a initialization requirement
for Read_Last parameter now. It is a bit incompartible with previous version,
- Attention: ZLib.Read generic routine have a initialization requirement
for Read_Last parameter now. It is a bit incompatible with previous version,
but extends functionality, we could use new parameters Allow_Read_Some and
Flush now.
@@ -59,7 +59,7 @@ the main functionality of ZLib.Ada.
The routines from the package specifications are commented.
Homepage: http://zlib-ada.sourceforge.net/
Homepage: https://zlib-ada.sourceforge.net/
Author: Dmitriy Anisimkov <anisimkov@yahoo.com>
Contributors: Pascal Obry <pascal@obry.org>, Steve Sangwine <sjs@essex.ac.uk>
+2 -2
View File
@@ -65,12 +65,12 @@ procedure Test is
Time_Stamp : Ada.Calendar.Time;
procedure Generate_File;
-- Generate file of spetsified size with some random data.
-- Generate file of specified size with some random data.
-- The random data is repeatable, for the good compression.
procedure Compare_Streams
(Left, Right : in out Root_Stream_Type'Class);
-- The procedure compearing data in 2 streams.
-- The procedure comparing data in 2 streams.
-- It is for compare data before and after compression/decompression.
procedure Compare_Files (Left, Right : String);
+1 -1
View File
@@ -62,7 +62,7 @@ package ZLib.Streams is
:= Default_Buffer_Size;
Write_Buffer_Size : in Ada.Streams.Stream_Element_Offset
:= Default_Buffer_Size);
-- Create the Comression/Decompression stream.
-- Create the Compression/Decompression stream.
-- If mode is In_Stream then Write operation is disabled.
-- If mode is Out_Stream then Read operation is disabled.
+2 -1
View File
@@ -12,7 +12,8 @@ package body ZLib.Thin is
ZLIB_VERSION : constant Chars_Ptr := zlibVersion;
Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
Dummy : Z_Stream;
Z_Stream_Size : constant Int := Dummy'Size / System.Storage_Unit;
--------------
-- Avail_In --
+1 -1
View File
@@ -204,7 +204,7 @@ package body ZLib is
end if;
-- We allow ZLib to make header only in case of default header type.
-- Otherwise we would either do header by ourselfs, or do not do
-- Otherwise we would either do header by ourselves, or do not do
-- header at all.
if Header = None or else Header = GZip then
+1 -1
View File
@@ -114,7 +114,7 @@ package ZLib is
-- Compression strategy constants --
------------------------------------
-- RLE stategy could be used only in version 1.2.0 and later.
-- RLE strategy could be used only in version 1.2.0 and later.
Filtered : constant Strategy_Type;
Huffman_Only : constant Strategy_Type;
+3 -3
View File
@@ -145,7 +145,7 @@ LastMatchGood:
movl %eax, %ebx
LookaheadLess: movl %ebx, nicematch(%esp)
/* register Bytef *scan = s->window + s->strstart; */
/* Bytef *scan = s->window + s->strstart; */
movl dsWindow(%edx), %esi
movl %esi, window(%esp)
@@ -181,8 +181,8 @@ LimitPositive:
addl %eax, %esi
movl %esi, windowbestlen(%esp)
/* register ush scan_start = *(ushf*)scan; */
/* register ush scan_end = *(ushf*)(scan+best_len-1); */
/* ush scan_start = *(ushf*)scan; */
/* ush scan_end = *(ushf*)(scan+best_len-1); */
/* Posf *prev = s->prev; */
movzwl (%edi), %ebx
+166
View File
@@ -0,0 +1,166 @@
cmake_minimum_required(VERSION 3.12...3.31)
project(
blast
VERSION 1.3.0
LANGUAGES C
DESCRIPTION "A library for creating zipfiles based in zlib"
HOMEPAGE_URL "https://www.zlib.net")
option(ZLIB_BLAST_BUILD_SHARED "Enable building blast shared library" ON)
option(ZLIB_BLAST_BUILD_STATIC "Enable building blast static library" ON)
option(ZLIB_BLAST_BUILD_TESTING "Enable building tests for blast" ON)
option(ZLIB_BLAST_INSTALL "Enable installation of blast" ON)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
if(WIN32 OR CYGWIN)
set(zlibblast_static_suffix "s")
set(CMAKE_DEBUG_POSTFIX "d")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif(WIN32 OR CYGWIN)
function(blast_findTestEnv testName)
set(testEnv "PATH=")
if(MSVC OR MINGW)
set(separator "\\\;")
else()
set(separator ":")
endif()
string(APPEND testEnv "$<TARGET_FILE_DIR:BLAST::BLAST>${separator}")
string(APPEND testEnv "$ENV{PATH}")
set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
endfunction(blast_findTestEnv testName)
if(ZLIB_BLAST_BUILD_SHARED)
add_library(zlib_blast_blast SHARED
blast.c
blast.h)
add_library(BLAST::BLAST ALIAS zlib_blast_blast)
if(NOT CYGWIN)
set_target_properties(zlib_blast_blast
PROPERTIES
SOVERSION ${blast_VERSION_MAJOR}
VERSION ${blast_VERSION})
endif(NOT CYGWIN)
set_target_properties(zlib_blast_blast
PROPERTIES
EXPORT_NAME BLAST
OUTPUT_NAME blast)
if(ZLIB_BLAST_BUILD_TESTING)
enable_testing()
add_executable(zlib_blast_blast-test blast-test.c)
target_link_libraries(zlib_blast_blast-test PRIVATE zlib_blast_blast)
add_test(NAME zlib_blast_blast-test
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
"$<TARGET_FILE:zlib_blast_blast-test>"
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}")
if(MSVC
OR MSYS
OR MINGW
OR CYGWIN)
blast_findtestenv(zlib_blast_blast-test)
endif(
MSVC
OR MSYS
OR MINGW
OR CYGWIN)
endif(ZLIB_BLAST_BUILD_TESTING)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
add_library(zlib_blast_blastStatic STATIC
blast.c
blast.h)
add_library(BLAST::BLASTSTATIC ALIAS zlib_blast_blastStatic)
set_target_properties(zlib_blast_blastStatic
PROPERTIES
EXPORT_NAME BLASTSTATIC
OUTPUT_NAME blast${zlibblast_static_suffix})
if(ZLIB_BLAST_BUILD_TESTING)
enable_testing()
add_executable(zlib_blast_testStatic blast-test.c)
target_link_libraries(zlib_blast_testStatic
PRIVATE zlib_blast_blastStatic)
add_test(NAME zlib_blast_testStatic
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
"$<TARGET_FILE:zlib_blast_testStatic>"
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}")
endif(ZLIB_BLAST_BUILD_TESTING)
endif(ZLIB_BLAST_BUILD_STATIC)
if(ZLIB_BLAST_BUILD_TESTING)
add_subdirectory(test)
endif(ZLIB_BLAST_BUILD_TESTING)
if(ZLIB_BLAST_INSTALL)
if(ZLIB_BLAST_BUILD_SHARED)
install(
TARGETS zlib_blast_blast
COMPONENT Runtime
EXPORT zlibBlastSharedExport
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(
EXPORT zlibBlastSharedExport
FILE blast-shared.cmake
NAMESPACE BLAST::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
if(MSVC)
install(
FILES $<TARGET_PDB_FILE:zlib_blast_blast>
COMPONENT Development
DESTINATION ${CMAKE_INSTALL_BINDIR}
CONFIGURATIONS Debug OR RelWithDebInfo
OPTIONAL)
endif(MSVC)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
install(
TARGETS zlib_blast_blastStatic
COMPONENT Development
EXPORT zlibBlastStaticExport
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
install(
EXPORT zlibBlastStaticExport
FILE blast-static.cmake
NAMESPACE BLAST::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
endif(ZLIB_BLAST_BUILD_STATIC)
configure_package_config_file(
${blast_SOURCE_DIR}/blastConfig.cmake.in
${blast_BINARY_DIR}/blastConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
write_basic_package_version_file(
"${blast_BINARY_DIR}/blastConfigVersion.cmake"
VERSION "${blast_VERSION}"
COMPATIBILITY AnyNewerVersion)
install(FILES ${blast_BINARY_DIR}/blastConfig.cmake
${blast_BINARY_DIR}/blastConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
install(
FILES blast.h
COMPONENT Development
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
endif(ZLIB_BLAST_INSTALL)
+11 -5
View File
@@ -1,8 +1,14 @@
blast: blast.c blast.h
cc -DTEST -o blast blast.c
all: test
test: blast
blast < test.pk | cmp - test.txt
libblast.so: blast.c blast.h
cc -o libblast.so -shared blast.c
blast-test: libblast.so
cc -o blast-test.o -c blast-test.c
cc -o blast-test blast-test.o libblast.so
test: blast-test
LD_LIBRARY_PATH=./ ./blast-test < test.pk | cmp - test.txt
clean:
rm -f blast blast.o
rm -f libblast.so blast-test blast-test.o
+42
View File
@@ -0,0 +1,42 @@
#include "blast.h" /* prototype for blast() */
/* Example of how to use blast() */
#include <stdio.h>
#include <stdlib.h>
#define CHUNK 16384
local unsigned inf(void *how, unsigned char **buf)
{
static unsigned char hold[CHUNK];
*buf = hold;
return fread(hold, 1, CHUNK, (FILE *)how);
}
local int outf(void *how, unsigned char *buf, unsigned len)
{
return fwrite(buf, 1, len, (FILE *)how) != len;
}
/* Decompress a PKWare Compression Library stream from stdin to stdout */
int main(void)
{
int ret;
unsigned left;
/* decompress to stdout */
left = 0;
ret = blast(inf, stdin, outf, stdout, &left, NULL);
if (ret != 0)
fprintf(stderr, "blast error: %d\n", ret);
/* count any leftover bytes */
while (getchar() != EOF)
left++;
if (left)
fprintf(stderr, "blast warning: %u unused bytes of input\n", left);
/* return blast() error code */
return ret;
}
-44
View File
@@ -33,7 +33,6 @@
#include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */
#include "blast.h" /* prototype for blast() */
#define local static /* for local function definitions */
#define MAXBITS 13 /* maximum code length */
#define MAXWIN 4096 /* maximum window size */
@@ -421,46 +420,3 @@ int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow,
err = 1;
return err;
}
#ifdef TEST
/* Example of how to use blast() */
#include <stdio.h>
#include <stdlib.h>
#define CHUNK 16384
local unsigned inf(void *how, unsigned char **buf)
{
static unsigned char hold[CHUNK];
*buf = hold;
return fread(hold, 1, CHUNK, (FILE *)how);
}
local int outf(void *how, unsigned char *buf, unsigned len)
{
return fwrite(buf, 1, len, (FILE *)how) != len;
}
/* Decompress a PKWare Compression Library stream from stdin to stdout */
int main(void)
{
int ret;
unsigned left;
/* decompress to stdout */
left = 0;
ret = blast(inf, stdin, outf, stdout, &left, NULL);
if (ret != 0)
fprintf(stderr, "blast error: %d\n", ret);
/* count any leftover bytes */
while (getchar() != EOF)
left++;
if (left)
fprintf(stderr, "blast warning: %u unused bytes of input\n", left);
/* return blast() error code */
return ret;
}
#endif
+1
View File
@@ -21,6 +21,7 @@
Mark Adler madler@alumni.caltech.edu
*/
#define local static /* for local function definitions */
/*
* blast() decompresses the PKWare Data Compression Library (DCL) compressed
@@ -0,0 +1,18 @@
@PACKAGE_INIT@
set(_blast_supported_components "shared" "static")
if(blast_FIND_COMPONENTS)
foreach(_comp ${blast_FIND_COMPONENTS})
if(NOT _comp IN_LIST _blast_supported_components)
set(blast_FOUND False)
set(blast_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}")
endif(NOT _comp IN_LIST _blast_supported_components)
include("${CMAKE_CURRENT_LIST_DIR}/blast-${_comp}.cmake")
endforeach(_comp ${blast_FIND_COMPONENTS})
else(blast_FIND_COMPONENTS)
foreach(_component_config IN LISTS _blast_supported_components)
include("${CMAKE_CURRENT_LIST_DIR}/blast-${_component_config}.cmake")
endforeach(_component_config IN LISTS _blast_supported_components)
endif(blast_FIND_COMPONENTS)
@@ -0,0 +1,193 @@
# if we are built from with zlib, use this path's)
if(DEFINED ZLIB_BUILD_BLAST)
set(WORK_DIR ${zlib_BINARY_DIR})
set(inst_setup zlib_install)
else(DEFINED ZLIB_BUILD_BLAST)
set(WORK_DIR ${blast_BINARY_DIR})
set(inst_setup zlib_blast_install)
set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}")
add_test(
NAME zlib_blast_install
COMMAND ${CMAKE_COMMAND} --install ${blast_BINARY_DIR} --prefix
${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
WORKING_DIRECTORY ${blast_BINARY_DIR})
set_tests_properties(zlib_blast_install
PROPERTIES
FIXTURES_SETUP zlib_blast_install)
endif(DEFINED ZLIB_BUILD_BLAST)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test/CMakeLists.txt
@ONLY)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt
@ONLY)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt
@ONLY)
# CMAKE_GENERATOR_PLATFORM doesn't work in the if
set(GENERATOR ${CMAKE_GENERATOR_PLATFORM})
if(GENERATOR)
set(PLATFORM "-A ${GENERATOR}")
endif(GENERATOR)
#
# findpackage_test
#
add_test(
NAME zlib_blast_find_package_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG>
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh
-G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
add_test(
NAME zlib_blast_find_package_build
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build)
set_tests_properties(
zlib_blast_find_package_configure
PROPERTIES
FIXTURES_REQUIRED ${inst_setup}
FIXTURES_SETUP blast_fp_config)
set_tests_properties(zlib_blast_find_package_build
PROPERTIES
FIXTURES_REQUIRED blast_fp_config)
#
# add_subdirectory_test
#
add_test(
NAME zlib_blast_add_subdirectory_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG>
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh
-G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
add_test(
NAME zlib_blast_add_subdirectory_build
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build)
set_tests_properties(
zlib_blast_add_subdirectory_configure
PROPERTIES
FIXTURES_REQUIRED ${inst_setup}
FIXTURES_SETUP blast_as_config)
set_tests_properties(zlib_blast_add_subdirectory_build
PROPERTIES
FIXTURES_REQUIRED blast_as_config)
#
# add_subdirectory_exclude_test
#
add_test(
NAME zlib_blast_add_subdirectory_exclude_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG>
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh
-G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)
add_test(
NAME zlib_blast_add_subdirectory_exclude_build
COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
WORKING_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build)
set_tests_properties(zlib_blast_add_subdirectory_exclude_configure
PROPERTIES
FIXTURES_REQUIRED ${inst_setup}
FIXTURES_SETUP blast_asx_config)
set_tests_properties(zlib_blast_add_subdirectory_exclude_build
PROPERTIES
FIXTURES_REQUIRED blast_asx_config)
#
# findpackage_no_components_test
#
add_test(
NAME zlib_blast_find_package_no_components_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh
-G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)
set_tests_properties(
zlib_blast_find_package_no_components_configure
PROPERTIES
FIXTURES_REQUIRED ${inst_setup})
if(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
set_tests_properties(zlib_blast_find_package_no_components_configure
PROPERTIES
WILL_FAIL TRUE)
endif(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
#
# findpackage_wrong_components_test
#
add_test(
NAME zlib_blast_find_package_wrong_components_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh
-G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
set_tests_properties(zlib_blast_find_package_wrong_components_configure
PROPERTIES
FIXTURES_REQUIRED ${inst_setup}
WILL_FAIL TRUE)
@@ -0,0 +1,27 @@
cmake_minimum_required(VERSION 3.12...3.31)
project(
blast_find_package
LANGUAGES C
VERSION @blast_VERSION@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)
add_subdirectory(@blast_SOURCE_DIR@
${CMAKE_CURRENT_BINARY_DIR}/blast
EXCLUDE_FROM_ALL)
set(BLAST_SRCS
@blast_SOURCE_DIR@/blast-test.c)
if(ZLIB_BLAST_BUILD_SHARED)
add_executable(test_example ${BLAST_SRCS})
target_link_libraries(test_example BLAST::BLAST)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
add_executable(test_example_static ${BLAST_SRCS})
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
endif(ZLIB_BLAST_BUILD_STATIC)
@@ -0,0 +1,25 @@
cmake_minimum_required(VERSION 3.12...3.31)
project(
blast_find_package
LANGUAGES C
VERSION @blast_VERSION@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)
add_subdirectory(@blast_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/blast)
set(BLAST_SRCS
@blast_SOURCE_DIR@/blast-test.c)
if(ZLIB_BLAST_BUILD_SHARED)
add_executable(test_example ${BLAST_SRCS})
target_link_libraries(test_example BLAST::BLAST)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
add_executable(test_example_static ${BLAST_SRCS})
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
endif(ZLIB_BLAST_BUILD_STATIC)
@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.12...3.31)
project(
blast_find_package
LANGUAGES C
VERSION @blast_VERSION@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
find_package(blast REQUIRED CONFIG)
set(BLAST_SRCS
@blast_SOURCE_DIR@/blast-test.c)
if(ZLIB_BLAST_BUILD_SHARED)
add_executable(test_example ${BLAST_SRCS})
target_link_libraries(test_example BLAST::BLAST)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
add_executable(test_example_static ${BLAST_SRCS})
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
endif(ZLIB_BLAST_BUILD_STATIC)
@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.12...3.31)
project(
blast_find_package
LANGUAGES C
VERSION @blast_VERSION@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
set(BLAST_SRCS
@blast_SOURCE_DIR@/blast-test.c)
if(ZLIB_BLAST_BUILD_SHARED)
find_package(blast REQUIRED COMPONENTS shared CONFIG)
add_executable(test_example ${BLAST_SRCS})
target_link_libraries(test_example BLAST::BLAST)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
find_package(blast REQUIRED COMPONENTS static CONFIG)
add_executable(test_example_static ${BLAST_SRCS})
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
endif(ZLIB_BLAST_BUILD_STATIC)
@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.12...3.31)
project(
blast_find_package
LANGUAGES C
VERSION @blast_VERSION@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
find_package(blast REQUIRED COMPONENTS wrong CONFIG)
set(BLAST_SRCS
@blast_SOURCE_DIR@/blast-test.c)
if(ZLIB_BLAST_BUILD_SHARED)
add_executable(test_example ${BLAST_SRCS})
target_link_libraries(test_example BLAST::BLAST)
endif(ZLIB_BLAST_BUILD_SHARED)
if(ZLIB_BLAST_BUILD_STATIC)
add_executable(test_example_static ${BLAST_SRCS})
target_link_libraries(test_example_static BLAST::BLASTSTATIC)
endif(ZLIB_BLAST_BUILD_STATIC)
+28
View File
@@ -0,0 +1,28 @@
cmake_minimum_required(VERSION 3.12...3.31)
#CMAKE_ARGV0 = ${CMAKE_COMMAND}
#CMAKE_ARGV1 = -P
#CMAKE_ARGV2 = ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
#CMAKE_ARGV3 = "$<TARGET_FILE:blast-test>"
#CMAKE_ARGV4 = "${CMAKE_CURRENT_SOURCE_DIR}"
#CMAKE_ARGV5 = "${CMAKE_CURRENT_BINARY_DIR}")
execute_process(COMMAND ${CMAKE_ARGV3}
INPUT_FILE "${CMAKE_ARGV4}/test.pk"
OUTPUT_FILE "${CMAKE_ARGV5}/output.txt"
RESULT_VARIABLE RESULT)
if(RESULT)
message(FATAL_ERROR "Command exitited with: ${RESULT}")
endif(RESULT)
execute_process(COMMAND ${CMAKE_ARGV0} -E compare_files
"${CMAKE_ARGV4}/test.txt"
"${CMAKE_ARGV5}/output.txt"
RESULT_VARIABLE RESULT)
file(REMOVE "${CMAKE_ARGV5}/output.txt")
if(RESULT)
message(FATAL_ERROR "Files differ")
endif(RESULT)
@@ -0,0 +1,67 @@
# check if we compile for IBM s390x
#
CHECK_C_SOURCE_COMPILES("
#ifndef __s390x__
#error
#endif
int main() {return 0;}
" HAS_S390X_SUPPORT)
#
# Check for IBM S390X - VX extensions
#
if(ZLIB_WITH_CRC32VX AND HAS_S390X_SUPPORT)
# preset the compiler specific flags
if (CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(VGFMAFLAG "-fzvector")
else()
set(VGFMAFLAG "-mzarch")
endif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(S390X_VX_TEST
"#ifndef __s390x__ \n\
#error \n\
#endif \n\
#include <vecintrin.h> \n\
int main(void) { \
unsigned long long a __attribute__((vector_size(16))) = { 0 }; \
unsigned long long b __attribute__((vector_size(16))) = { 0 }; \
unsigned char c __attribute__((vector_size(16))) = { 0 }; \
c = vec_gfmsum_accum_128(a, b, c); \
return c[0]; \
}")
# cflags already contains a valid march
set(CMAKE_REQUIRED_FLAGS "${VGFMAFLAG}")
check_c_source_compiles("${S390X_VX_TEST}" HAS_S390X_VX_SUPPORT)
unset(CMAKE_REQUIRED_FLAGS)
# or set march for our compile units
if(NOT HAS_S390X_VX_SUPPORT)
set(CMAKE_REQUIRED_FLAGS "${VGFMAFLAG} -march=z13")
check_c_source_compiles("${S390X_VX_TEST}" HAS_Z13_S390X_VX_SUPPORT)
unset(CMAKE_REQUIRED_FLAGS )
list(APPEND VGFMAFLAG "-march=z13")
endif(NOT HAS_S390X_VX_SUPPORT)
# prepare compiling for s390x
if(HAS_S390X_VX_SUPPORT OR HAS_Z13_S390X_VX_SUPPORT)
if(ZLIB_BUILD_SHARED)
target_sources(zlib
PRIVATE
crc32_vx.c
crc32_vx_hooks.h)
target_compile_definitions(zlib PUBLIC -DHAVE_S390X_VX=1)
endif(ZLIB_BUILD_SHARED)
if(ZLIB_BUILD_STATIC)
target_sources(zlibstatic
PRIVATE
crc32_vx.c
crc32_vx_hooks.h)
target_compile_definitions(zlibstatic PUBLIC -DHAVE_S390X_VX=1)
endif(ZLIB_BUILD_STATIC)
set_source_files_properties(
crc32_vx.c
PROPERTIES COMPILE_OPTIONS "${VGFMAFLAG}")
endif(HAS_S390X_VX_SUPPORT OR HAS_Z13_S390X_VX_SUPPORT)
endif(ZLIB_WITH_CRC32VX AND HAS_S390X_SUPPORT)
+9
View File
@@ -0,0 +1,9 @@
IBM Z mainframes starting from version z13 provide vector instructions, which
allows vectorization of crc32. This extension is build by default when targeting
ibm s390x. However this extension can disabled if desired:
# for configure build
$ ./configure --disable-crcvx
# for cmake build
$ cmake .. -DZLIB_CRC32VX=off
+254
View File
@@ -0,0 +1,254 @@
/*
* Hardware-accelerated CRC-32 variants for Linux on z Systems
*
* Use the z/Architecture Vector Extension Facility to accelerate the
* computing of bitreflected CRC-32 checksums.
*
* This CRC-32 implementation algorithm is bitreflected and processes
* the least-significant bit first (Little-Endian).
*
* This code was originally written by Hendrik Brueckner
* <brueckner@linux.vnet.ibm.com> for use in the Linux kernel and has been
* relicensed under the zlib license.
*/
#define Z_ONCE
#include "../../zutil.h"
#include "crc32_vx_hooks.h"
#include <stdint.h>
#include <stdio.h>
#include <vecintrin.h>
#include <sys/auxv.h>
#ifdef __clang__
# if ((__clang_major__ == 18) || (__clang_major__ == 19 && (__clang_minor__ < 1 || (__clang_minor__ == 1 && __clang_patchlevel__ < 2))))
# error crc32_vx optimizations are broken due to compiler bug in Clang versions: 18.0.0 <= clang_version < 19.1.2. \
Either disable the zlib crc32_vx optimization, or switch to another compiler/compiler version.
# endif
#endif
#define VX_MIN_LEN 64
#define VX_ALIGNMENT 16L
#define VX_ALIGN_MASK (VX_ALIGNMENT - 1)
typedef unsigned char uv16qi __attribute__((vector_size(16)));
typedef unsigned int uv4si __attribute__((vector_size(16)));
typedef unsigned long long uv2di __attribute__((vector_size(16)));
local uint32_t crc32_le_vgfm_16(uint32_t crc, const unsigned char *buf, size_t len) {
/*
* The CRC-32 constant block contains reduction constants to fold and
* process particular chunks of the input data stream in parallel.
*
* For the CRC-32 variants, the constants are precomputed according to
* these definitions:
*
* R1 = [(x4*128+32 mod P'(x) << 32)]' << 1
* R2 = [(x4*128-32 mod P'(x) << 32)]' << 1
* R3 = [(x128+32 mod P'(x) << 32)]' << 1
* R4 = [(x128-32 mod P'(x) << 32)]' << 1
* R5 = [(x64 mod P'(x) << 32)]' << 1
* R6 = [(x32 mod P'(x) << 32)]' << 1
*
* The bitreflected Barret reduction constant, u', is defined as
* the bit reversal of floor(x**64 / P(x)).
*
* where P(x) is the polynomial in the normal domain and the P'(x) is the
* polynomial in the reversed (bitreflected) domain.
*
* CRC-32 (IEEE 802.3 Ethernet, ...) polynomials:
*
* P(x) = 0x04C11DB7
* P'(x) = 0xEDB88320
*/
const uv16qi perm_le2be = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; /* BE->LE mask */
const uv2di r2r1 = {0x1C6E41596, 0x154442BD4}; /* R2, R1 */
const uv2di r4r3 = {0x0CCAA009E, 0x1751997D0}; /* R4, R3 */
const uv2di r5 = {0, 0x163CD6124}; /* R5 */
const uv2di ru_poly = {0, 0x1F7011641}; /* u' */
const uv2di crc_poly = {0, 0x1DB710641}; /* P'(x) << 1 */
/*
* Load the initial CRC value.
*
* The CRC value is loaded into the rightmost word of the
* vector register and is later XORed with the LSB portion
* of the loaded input data.
*/
uv2di v0 = {0, 0};
v0 = (uv2di)vec_insert(crc, (uv4si)v0, 3);
/* Load a 64-byte data chunk and XOR with CRC */
uv2di v1 = vec_perm(((uv2di *)buf)[0], ((uv2di *)buf)[0], perm_le2be);
uv2di v2 = vec_perm(((uv2di *)buf)[1], ((uv2di *)buf)[1], perm_le2be);
uv2di v3 = vec_perm(((uv2di *)buf)[2], ((uv2di *)buf)[2], perm_le2be);
uv2di v4 = vec_perm(((uv2di *)buf)[3], ((uv2di *)buf)[3], perm_le2be);
v1 ^= v0;
buf += 64;
len -= 64;
while (len >= 64) {
/* Load the next 64-byte data chunk */
uv16qi part1 = vec_perm(((uv16qi *)buf)[0], ((uv16qi *)buf)[0], perm_le2be);
uv16qi part2 = vec_perm(((uv16qi *)buf)[1], ((uv16qi *)buf)[1], perm_le2be);
uv16qi part3 = vec_perm(((uv16qi *)buf)[2], ((uv16qi *)buf)[2], perm_le2be);
uv16qi part4 = vec_perm(((uv16qi *)buf)[3], ((uv16qi *)buf)[3], perm_le2be);
/*
* Perform a GF(2) multiplication of the doublewords in V1 with
* the R1 and R2 reduction constants in V0. The intermediate result
* is then folded (accumulated) with the next data chunk in PART1 and
* stored in V1. Repeat this step for the register contents
* in V2, V3, and V4 respectively.
*/
v1 = (uv2di)vec_gfmsum_accum_128(r2r1, v1, part1);
v2 = (uv2di)vec_gfmsum_accum_128(r2r1, v2, part2);
v3 = (uv2di)vec_gfmsum_accum_128(r2r1, v3, part3);
v4 = (uv2di)vec_gfmsum_accum_128(r2r1, v4, part4);
buf += 64;
len -= 64;
}
/*
* Fold V1 to V4 into a single 128-bit value in V1. Multiply V1 with R3
* and R4 and accumulating the next 128-bit chunk until a single 128-bit
* value remains.
*/
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v2);
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v3);
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v4);
while (len >= 16) {
/* Load next data chunk */
v2 = vec_perm(*(uv2di *)buf, *(uv2di *)buf, perm_le2be);
/* Fold next data chunk */
v1 = (uv2di)vec_gfmsum_accum_128(r4r3, v1, (uv16qi)v2);
buf += 16;
len -= 16;
}
/*
* Set up a vector register for byte shifts. The shift value must
* be loaded in bits 1-4 in byte element 7 of a vector register.
* Shift by 8 bytes: 0x40
* Shift by 4 bytes: 0x20
*/
uv16qi v9 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
v9 = vec_insert((unsigned char)0x40, v9, 7);
/*
* Prepare V0 for the next GF(2) multiplication: shift V0 by 8 bytes
* to move R4 into the rightmost doubleword and set the leftmost
* doubleword to 0x1.
*/
v0 = vec_srb(r4r3, (uv2di)v9);
v0[0] = 1;
/*
* Compute GF(2) product of V1 and V0. The rightmost doubleword
* of V1 is multiplied with R4. The leftmost doubleword of V1 is
* multiplied by 0x1 and is then XORed with rightmost product.
* Implicitly, the intermediate leftmost product becomes padded
*/
v1 = (uv2di)vec_gfmsum_128(v0, v1);
/*
* Now do the final 32-bit fold by multiplying the rightmost word
* in V1 with R5 and XOR the result with the remaining bits in V1.
*
* To achieve this by a single VGFMAG, right shift V1 by a word
* and store the result in V2 which is then accumulated. Use the
* vector unpack instruction to load the rightmost half of the
* doubleword into the rightmost doubleword element of V1; the other
* half is loaded in the leftmost doubleword.
* The vector register with CONST_R5 contains the R5 constant in the
* rightmost doubleword and the leftmost doubleword is zero to ignore
* the leftmost product of V1.
*/
v9 = vec_insert((unsigned char)0x20, v9, 7);
v2 = vec_srb(v1, (uv2di)v9);
v1 = vec_unpackl((uv4si)v1); /* Split rightmost doubleword */
v1 = (uv2di)vec_gfmsum_accum_128(r5, v1, (uv16qi)v2);
/*
* Apply a Barret reduction to compute the final 32-bit CRC value.
*
* The input values to the Barret reduction are the degree-63 polynomial
* in V1 (R(x)), degree-32 generator polynomial, and the reduction
* constant u. The Barret reduction result is the CRC value of R(x) mod
* P(x).
*
* The Barret reduction algorithm is defined as:
*
* 1. T1(x) = floor( R(x) / x^32 ) GF2MUL u
* 2. T2(x) = floor( T1(x) / x^32 ) GF2MUL P(x)
* 3. C(x) = R(x) XOR T2(x) mod x^32
*
* Note: The leftmost doubleword of vector register containing
* CONST_RU_POLY is zero and, thus, the intermediate GF(2) product
* is zero and does not contribute to the final result.
*/
/* T1(x) = floor( R(x) / x^32 ) GF2MUL u */
v2 = vec_unpackl((uv4si)v1);
v2 = (uv2di)vec_gfmsum_128(ru_poly, v2);
/*
* Compute the GF(2) product of the CRC polynomial with T1(x) in
* V2 and XOR the intermediate result, T2(x), with the value in V1.
* The final result is stored in word element 2 of V2.
*/
v2 = vec_unpackl((uv4si)v2);
v2 = (uv2di)vec_gfmsum_accum_128(crc_poly, v2, (uv16qi)v1);
return ((uv4si)v2)[2];
}
local unsigned long s390_crc32_vx(unsigned long crc, const unsigned char FAR *buf, z_size_t len)
{
uintptr_t prealign, aligned, remaining;
if (buf == Z_NULL) return 0UL;
if (len < VX_MIN_LEN + VX_ALIGN_MASK)
return crc32_z(crc, buf, len);
if ((uintptr_t)buf & VX_ALIGN_MASK) {
prealign = VX_ALIGNMENT - ((uintptr_t)buf & VX_ALIGN_MASK);
len -= prealign;
crc = crc32_z(crc, buf, prealign);
buf += prealign;
}
aligned = len & ~VX_ALIGN_MASK;
remaining = len & VX_ALIGN_MASK;
crc = crc32_le_vgfm_16(crc ^ 0xffffffff, buf, (size_t)aligned) ^ 0xffffffff;
if (remaining)
crc = crc32_z(crc, buf + aligned, remaining);
return crc;
}
local z_once_t s390_crc32_made = Z_ONCE_INIT;
local void s390_crc32_setup() {
unsigned long hwcap = getauxval(AT_HWCAP);
if (hwcap & HWCAP_S390_VX)
crc32_z_hook = s390_crc32_vx;
else
crc32_z_hook = crc32_z;
}
local unsigned long s390_crc32_init(unsigned long crc, const unsigned char FAR *buf, z_size_t len)
{
z_once(&s390_crc32_made,s390_crc32_setup);
return crc32_z_hook(crc, buf, len);
}
ZLIB_INTERNAL unsigned long (*crc32_z_hook)(unsigned long crc, const unsigned char FAR *buf, z_size_t len) = s390_crc32_init;
@@ -0,0 +1,9 @@
#ifndef CRC32_VX_HOOKS_H
#define CRC32_VX_HOOKS_H
/**
* CRC HOOKS
*/
ZLIB_INTERNAL extern unsigned long (*crc32_z_hook)(unsigned long crc, const unsigned char FAR *buf, z_size_t len);
#endif /* CRC32_VX_HOOKS_H */
+1 -1
View File
@@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
const OutBuf: Pointer; BufSize: Integer);
const
zlib_version = '1.2.13';
zlib_version = '1.3.2';
type
EZlibError = class(Exception);
@@ -1,202 +1,202 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace DotZLib
{
#region ChecksumGeneratorBase
/// <summary>
/// Implements the common functionality needed for all <see cref="ChecksumGenerator"/>s
/// </summary>
/// <example></example>
public abstract class ChecksumGeneratorBase : ChecksumGenerator
{
/// <summary>
/// The value of the current checksum
/// </summary>
protected uint _current;
/// <summary>
/// Initializes a new instance of the checksum generator base - the current checksum is
/// set to zero
/// </summary>
public ChecksumGeneratorBase()
{
_current = 0;
}
/// <summary>
/// Initializes a new instance of the checksum generator basewith a specified value
/// </summary>
/// <param name="initialValue">The value to set the current checksum to</param>
public ChecksumGeneratorBase(uint initialValue)
{
_current = initialValue;
}
/// <summary>
/// Resets the current checksum to zero
/// </summary>
public void Reset() { _current = 0; }
/// <summary>
/// Gets the current checksum value
/// </summary>
public uint Value { get { return _current; } }
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
/// <remarks>All the other <c>Update</c> methods are implmeneted in terms of this one.
/// This is therefore the only method a derived class has to implement</remarks>
public abstract void Update(byte[] data, int offset, int count);
/// <summary>
/// Updates the current checksum with an array of bytes.
/// </summary>
/// <param name="data">The data to update the checksum with</param>
public void Update(byte[] data)
{
Update(data, 0, data.Length);
}
/// <summary>
/// Updates the current checksum with the data from a string
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks>
public void Update(string data)
{
Update(Encoding.UTF8.GetBytes(data));
}
/// <summary>
/// Updates the current checksum with the data from a string, using a specific encoding
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <param name="encoding">The encoding to use</param>
public void Update(string data, Encoding encoding)
{
Update(encoding.GetBytes(data));
}
}
#endregion
#region CRC32
/// <summary>
/// Implements a CRC32 checksum generator
/// </summary>
public sealed class CRC32Checksum : ChecksumGeneratorBase
{
#region DLL imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern uint crc32(uint crc, int data, uint length);
#endregion
/// <summary>
/// Initializes a new instance of the CRC32 checksum generator
/// </summary>
public CRC32Checksum() : base() {}
/// <summary>
/// Initializes a new instance of the CRC32 checksum generator with a specified value
/// </summary>
/// <param name="initialValue">The value to set the current checksum to</param>
public CRC32Checksum(uint initialValue) : base(initialValue) {}
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
public override void Update(byte[] data, int offset, int count)
{
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
_current = crc32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count);
}
finally
{
hData.Free();
}
}
}
#endregion
#region Adler
/// <summary>
/// Implements a checksum generator that computes the Adler checksum on data
/// </summary>
public sealed class AdlerChecksum : ChecksumGeneratorBase
{
#region DLL imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern uint adler32(uint adler, int data, uint length);
#endregion
/// <summary>
/// Initializes a new instance of the Adler checksum generator
/// </summary>
public AdlerChecksum() : base() {}
/// <summary>
/// Initializes a new instance of the Adler checksum generator with a specified value
/// </summary>
/// <param name="initialValue">The value to set the current checksum to</param>
public AdlerChecksum(uint initialValue) : base(initialValue) {}
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
public override void Update(byte[] data, int offset, int count)
{
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
_current = adler32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count);
}
finally
{
hData.Free();
}
}
}
#endregion
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace DotZLib
{
#region ChecksumGeneratorBase
/// <summary>
/// Implements the common functionality needed for all <see cref="ChecksumGenerator"/>s
/// </summary>
/// <example></example>
public abstract class ChecksumGeneratorBase : ChecksumGenerator
{
/// <summary>
/// The value of the current checksum
/// </summary>
protected uint _current;
/// <summary>
/// Initializes a new instance of the checksum generator base - the current checksum is
/// set to zero
/// </summary>
public ChecksumGeneratorBase()
{
_current = 0;
}
/// <summary>
/// Initializes a new instance of the checksum generator base with a specified value
/// </summary>
/// <param name="initialValue">The value to set the current checksum to</param>
public ChecksumGeneratorBase(uint initialValue)
{
_current = initialValue;
}
/// <summary>
/// Resets the current checksum to zero
/// </summary>
public void Reset() { _current = 0; }
/// <summary>
/// Gets the current checksum value
/// </summary>
public uint Value { get { return _current; } }
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
/// <remarks>All the other <c>Update</c> methods are implemented in terms of this one.
/// This is therefore the only method a derived class has to implement</remarks>
public abstract void Update(byte[] data, int offset, int count);
/// <summary>
/// Updates the current checksum with an array of bytes.
/// </summary>
/// <param name="data">The data to update the checksum with</param>
public void Update(byte[] data)
{
Update(data, 0, data.Length);
}
/// <summary>
/// Updates the current checksum with the data from a string
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks>
public void Update(string data)
{
Update(Encoding.UTF8.GetBytes(data));
}
/// <summary>
/// Updates the current checksum with the data from a string, using a specific encoding
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <param name="encoding">The encoding to use</param>
public void Update(string data, Encoding encoding)
{
Update(encoding.GetBytes(data));
}
}
#endregion
#region CRC32
/// <summary>
/// Implements a CRC32 checksum generator
/// </summary>
public sealed class CRC32Checksum : ChecksumGeneratorBase
{
#region DLL imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern uint crc32(uint crc, int data, uint length);
#endregion
/// <summary>
/// Initializes a new instance of the CRC32 checksum generator
/// </summary>
public CRC32Checksum() : base() {}
/// <summary>
/// Initializes a new instance of the CRC32 checksum generator with a specified value
/// </summary>
/// <param name="initialValue">The value to set the current checksum to</param>
public CRC32Checksum(uint initialValue) : base(initialValue) {}
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
public override void Update(byte[] data, int offset, int count)
{
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
_current = crc32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count);
}
finally
{
hData.Free();
}
}
}
#endregion
#region Adler
/// <summary>
/// Implements a checksum generator that computes the Adler checksum on data
/// </summary>
public sealed class AdlerChecksum : ChecksumGeneratorBase
{
#region DLL imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern uint adler32(uint adler, int data, uint length);
#endregion
/// <summary>
/// Initializes a new instance of the Adler checksum generator
/// </summary>
public AdlerChecksum() : base() {}
/// <summary>
/// Initializes a new instance of the Adler checksum generator with a specified value
/// </summary>
/// <param name="initialValue">The value to set the current checksum to</param>
public AdlerChecksum(uint initialValue) : base(initialValue) {}
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
public override void Update(byte[] data, int offset, int count)
{
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
_current = adler32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count);
}
finally
{
hData.Free();
}
}
}
#endregion
}
@@ -1,83 +1,83 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Diagnostics;
namespace DotZLib
{
/// <summary>
/// This class implements a circular buffer
/// </summary>
internal class CircularBuffer
{
#region Private data
private int _capacity;
private int _head;
private int _tail;
private int _size;
private byte[] _buffer;
#endregion
public CircularBuffer(int capacity)
{
Debug.Assert( capacity > 0 );
_buffer = new byte[capacity];
_capacity = capacity;
_head = 0;
_tail = 0;
_size = 0;
}
public int Size { get { return _size; } }
public int Put(byte[] source, int offset, int count)
{
Debug.Assert( count > 0 );
int trueCount = Math.Min(count, _capacity - Size);
for (int i = 0; i < trueCount; ++i)
_buffer[(_tail+i) % _capacity] = source[offset+i];
_tail += trueCount;
_tail %= _capacity;
_size += trueCount;
return trueCount;
}
public bool Put(byte b)
{
if (Size == _capacity) // no room
return false;
_buffer[_tail++] = b;
_tail %= _capacity;
++_size;
return true;
}
public int Get(byte[] destination, int offset, int count)
{
int trueCount = Math.Min(count,Size);
for (int i = 0; i < trueCount; ++i)
destination[offset + i] = _buffer[(_head+i) % _capacity];
_head += trueCount;
_head %= _capacity;
_size -= trueCount;
return trueCount;
}
public int Get()
{
if (Size == 0)
return -1;
int result = (int)_buffer[_head++ % _capacity];
--_size;
return result;
}
}
}
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Diagnostics;
namespace DotZLib
{
/// <summary>
/// This class implements a circular buffer
/// </summary>
internal class CircularBuffer
{
#region Private data
private int _capacity;
private int _head;
private int _tail;
private int _size;
private byte[] _buffer;
#endregion
public CircularBuffer(int capacity)
{
Debug.Assert( capacity > 0 );
_buffer = new byte[capacity];
_capacity = capacity;
_head = 0;
_tail = 0;
_size = 0;
}
public int Size { get { return _size; } }
public int Put(byte[] source, int offset, int count)
{
Debug.Assert( count > 0 );
int trueCount = Math.Min(count, _capacity - Size);
for (int i = 0; i < trueCount; ++i)
_buffer[(_tail+i) % _capacity] = source[offset+i];
_tail += trueCount;
_tail %= _capacity;
_size += trueCount;
return trueCount;
}
public bool Put(byte b)
{
if (Size == _capacity) // no room
return false;
_buffer[_tail++] = b;
_tail %= _capacity;
++_size;
return true;
}
public int Get(byte[] destination, int offset, int count)
{
int trueCount = Math.Min(count,Size);
for (int i = 0; i < trueCount; ++i)
destination[offset + i] = _buffer[(_head+i) % _capacity];
_head += trueCount;
_head %= _capacity;
_size -= trueCount;
return trueCount;
}
public int Get()
{
if (Size == 0)
return -1;
int result = (int)_buffer[_head++ % _capacity];
--_size;
return result;
}
}
}
+198 -198
View File
@@ -1,198 +1,198 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements the common functionality needed for all <see cref="Codec"/>s
/// </summary>
public abstract class CodecBase : Codec, IDisposable
{
#region Data members
/// <summary>
/// Instance of the internal zlib buffer structure that is
/// passed to all functions in the zlib dll
/// </summary>
internal ZStream _ztream = new ZStream();
/// <summary>
/// True if the object instance has been disposed, false otherwise
/// </summary>
protected bool _isDisposed = false;
/// <summary>
/// The size of the internal buffers
/// </summary>
protected const int kBufferSize = 16384;
private byte[] _outBuffer = new byte[kBufferSize];
private byte[] _inBuffer = new byte[kBufferSize];
private GCHandle _hInput;
private GCHandle _hOutput;
private uint _checksum = 0;
#endregion
/// <summary>
/// Initializes a new instance of the <c>CodeBase</c> class.
/// </summary>
public CodecBase()
{
try
{
_hInput = GCHandle.Alloc(_inBuffer, GCHandleType.Pinned);
_hOutput = GCHandle.Alloc(_outBuffer, GCHandleType.Pinned);
}
catch (Exception)
{
CleanUp(false);
throw;
}
}
#region Codec Members
/// <summary>
/// Occurs when more processed data are available.
/// </summary>
public event DataAvailableHandler DataAvailable;
/// <summary>
/// Fires the <see cref="DataAvailable"/> event
/// </summary>
protected void OnDataAvailable()
{
if (_ztream.total_out > 0)
{
if (DataAvailable != null)
DataAvailable( _outBuffer, 0, (int)_ztream.total_out);
resetOutput();
}
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
public void Add(byte[] data)
{
Add(data,0,data.Length);
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
/// <remarks>This must be implemented by a derived class</remarks>
public abstract void Add(byte[] data, int offset, int count);
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
/// <remarks>This must be implemented by a derived class</remarks>
public abstract void Finish();
/// <summary>
/// Gets the checksum of the data that has been added so far
/// </summary>
public uint Checksum { get { return _checksum; } }
#endregion
#region Destructor & IDisposable stuff
/// <summary>
/// Destroys this instance
/// </summary>
~CodecBase()
{
CleanUp(false);
}
/// <summary>
/// Releases any unmanaged resources and calls the <see cref="CleanUp()"/> method of the derived class
/// </summary>
public void Dispose()
{
CleanUp(true);
}
/// <summary>
/// Performs any codec specific cleanup
/// </summary>
/// <remarks>This must be implemented by a derived class</remarks>
protected abstract void CleanUp();
// performs the release of the handles and calls the dereived CleanUp()
private void CleanUp(bool isDisposing)
{
if (!_isDisposed)
{
CleanUp();
if (_hInput.IsAllocated)
_hInput.Free();
if (_hOutput.IsAllocated)
_hOutput.Free();
_isDisposed = true;
}
}
#endregion
#region Helper methods
/// <summary>
/// Copies a number of bytes to the internal codec buffer - ready for proccesing
/// </summary>
/// <param name="data">The byte array that contains the data to copy</param>
/// <param name="startIndex">The index of the first byte to copy</param>
/// <param name="count">The number of bytes to copy from <c>data</c></param>
protected void copyInput(byte[] data, int startIndex, int count)
{
Array.Copy(data, startIndex, _inBuffer,0, count);
_ztream.next_in = _hInput.AddrOfPinnedObject();
_ztream.total_in = 0;
_ztream.avail_in = (uint)count;
}
/// <summary>
/// Resets the internal output buffers to a known state - ready for processing
/// </summary>
protected void resetOutput()
{
_ztream.total_out = 0;
_ztream.avail_out = kBufferSize;
_ztream.next_out = _hOutput.AddrOfPinnedObject();
}
/// <summary>
/// Updates the running checksum property
/// </summary>
/// <param name="newSum">The new checksum value</param>
protected void setChecksum(uint newSum)
{
_checksum = newSum;
}
#endregion
}
}
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements the common functionality needed for all <see cref="Codec"/>s
/// </summary>
public abstract class CodecBase : Codec, IDisposable
{
#region Data members
/// <summary>
/// Instance of the internal zlib buffer structure that is
/// passed to all functions in the zlib dll
/// </summary>
internal ZStream _ztream = new ZStream();
/// <summary>
/// True if the object instance has been disposed, false otherwise
/// </summary>
protected bool _isDisposed = false;
/// <summary>
/// The size of the internal buffers
/// </summary>
protected const int kBufferSize = 16384;
private byte[] _outBuffer = new byte[kBufferSize];
private byte[] _inBuffer = new byte[kBufferSize];
private GCHandle _hInput;
private GCHandle _hOutput;
private uint _checksum = 0;
#endregion
/// <summary>
/// Initializes a new instance of the <c>CodeBase</c> class.
/// </summary>
public CodecBase()
{
try
{
_hInput = GCHandle.Alloc(_inBuffer, GCHandleType.Pinned);
_hOutput = GCHandle.Alloc(_outBuffer, GCHandleType.Pinned);
}
catch (Exception)
{
CleanUp(false);
throw;
}
}
#region Codec Members
/// <summary>
/// Occurs when more processed data are available.
/// </summary>
public event DataAvailableHandler DataAvailable;
/// <summary>
/// Fires the <see cref="DataAvailable"/> event
/// </summary>
protected void OnDataAvailable()
{
if (_ztream.total_out > 0)
{
if (DataAvailable != null)
DataAvailable( _outBuffer, 0, (int)_ztream.total_out);
resetOutput();
}
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
public void Add(byte[] data)
{
Add(data,0,data.Length);
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
/// <remarks>This must be implemented by a derived class</remarks>
public abstract void Add(byte[] data, int offset, int count);
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
/// <remarks>This must be implemented by a derived class</remarks>
public abstract void Finish();
/// <summary>
/// Gets the checksum of the data that has been added so far
/// </summary>
public uint Checksum { get { return _checksum; } }
#endregion
#region Destructor & IDisposable stuff
/// <summary>
/// Destroys this instance
/// </summary>
~CodecBase()
{
CleanUp(false);
}
/// <summary>
/// Releases any unmanaged resources and calls the <see cref="CleanUp()"/> method of the derived class
/// </summary>
public void Dispose()
{
CleanUp(true);
}
/// <summary>
/// Performs any codec specific cleanup
/// </summary>
/// <remarks>This must be implemented by a derived class</remarks>
protected abstract void CleanUp();
// performs the release of the handles and calls the derived CleanUp()
private void CleanUp(bool isDisposing)
{
if (!_isDisposed)
{
CleanUp();
if (_hInput.IsAllocated)
_hInput.Free();
if (_hOutput.IsAllocated)
_hOutput.Free();
_isDisposed = true;
}
}
#endregion
#region Helper methods
/// <summary>
/// Copies a number of bytes to the internal codec buffer - ready for processing
/// </summary>
/// <param name="data">The byte array that contains the data to copy</param>
/// <param name="startIndex">The index of the first byte to copy</param>
/// <param name="count">The number of bytes to copy from <c>data</c></param>
protected void copyInput(byte[] data, int startIndex, int count)
{
Array.Copy(data, startIndex, _inBuffer,0, count);
_ztream.next_in = _hInput.AddrOfPinnedObject();
_ztream.total_in = 0;
_ztream.avail_in = (uint)count;
}
/// <summary>
/// Resets the internal output buffers to a known state - ready for processing
/// </summary>
protected void resetOutput()
{
_ztream.total_out = 0;
_ztream.avail_out = kBufferSize;
_ztream.next_out = _hOutput.AddrOfPinnedObject();
}
/// <summary>
/// Updates the running checksum property
/// </summary>
/// <param name="newSum">The new checksum value</param>
protected void setChecksum(uint newSum)
{
_checksum = newSum;
}
#endregion
}
}
+106 -106
View File
@@ -1,106 +1,106 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements a data compressor, using the deflate algorithm in the ZLib dll
/// </summary>
public sealed class Deflater : CodecBase
{
#region Dll imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
private static extern int deflateInit_(ref ZStream sz, int level, string vs, int size);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int deflate(ref ZStream sz, int flush);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int deflateReset(ref ZStream sz);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int deflateEnd(ref ZStream sz);
#endregion
/// <summary>
/// Constructs an new instance of the <c>Deflater</c>
/// </summary>
/// <param name="level">The compression level to use for this <c>Deflater</c></param>
public Deflater(CompressLevel level) : base()
{
int retval = deflateInit_(ref _ztream, (int)level, Info.Version, Marshal.SizeOf(_ztream));
if (retval != 0)
throw new ZLibException(retval, "Could not initialize deflater");
resetOutput();
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
public override void Add(byte[] data, int offset, int count)
{
if (data == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
int total = count;
int inputIndex = offset;
int err = 0;
while (err >= 0 && inputIndex < total)
{
copyInput(data, inputIndex, Math.Min(total - inputIndex, kBufferSize));
while (err >= 0 && _ztream.avail_in > 0)
{
err = deflate(ref _ztream, (int)FlushTypes.None);
if (err == 0)
while (_ztream.avail_out == 0)
{
OnDataAvailable();
err = deflate(ref _ztream, (int)FlushTypes.None);
}
inputIndex += (int)_ztream.total_in;
}
}
setChecksum( _ztream.adler );
}
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
public override void Finish()
{
int err;
do
{
err = deflate(ref _ztream, (int)FlushTypes.Finish);
OnDataAvailable();
}
while (err == 0);
setChecksum( _ztream.adler );
deflateReset(ref _ztream);
resetOutput();
}
/// <summary>
/// Closes the internal zlib deflate stream
/// </summary>
protected override void CleanUp() { deflateEnd(ref _ztream); }
}
}
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements a data compressor, using the deflate algorithm in the ZLib dll
/// </summary>
public sealed class Deflater : CodecBase
{
#region Dll imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
private static extern int deflateInit_(ref ZStream sz, int level, string vs, int size);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int deflate(ref ZStream sz, int flush);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int deflateReset(ref ZStream sz);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int deflateEnd(ref ZStream sz);
#endregion
/// <summary>
/// Constructs an new instance of the <c>Deflater</c>
/// </summary>
/// <param name="level">The compression level to use for this <c>Deflater</c></param>
public Deflater(CompressLevel level) : base()
{
int retval = deflateInit_(ref _ztream, (int)level, Info.Version, Marshal.SizeOf(_ztream));
if (retval != 0)
throw new ZLibException(retval, "Could not initialize deflater");
resetOutput();
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
public override void Add(byte[] data, int offset, int count)
{
if (data == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
int total = count;
int inputIndex = offset;
int err = 0;
while (err >= 0 && inputIndex < total)
{
copyInput(data, inputIndex, Math.Min(total - inputIndex, kBufferSize));
while (err >= 0 && _ztream.avail_in > 0)
{
err = deflate(ref _ztream, (int)FlushTypes.None);
if (err == 0)
while (_ztream.avail_out == 0)
{
OnDataAvailable();
err = deflate(ref _ztream, (int)FlushTypes.None);
}
inputIndex += (int)_ztream.total_in;
}
}
setChecksum( _ztream.adler );
}
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
public override void Finish()
{
int err;
do
{
err = deflate(ref _ztream, (int)FlushTypes.Finish);
OnDataAvailable();
}
while (err == 0);
setChecksum( _ztream.adler );
deflateReset(ref _ztream);
resetOutput();
}
/// <summary>
/// Closes the internal zlib deflate stream
/// </summary>
protected override void CleanUp() { deflateEnd(ref _ztream); }
}
}
+288 -288
View File
@@ -1,288 +1,288 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
namespace DotZLib
{
#region Internal types
/// <summary>
/// Defines constants for the various flush types used with zlib
/// </summary>
internal enum FlushTypes
{
None, Partial, Sync, Full, Finish, Block
}
#region ZStream structure
// internal mapping of the zlib zstream structure for marshalling
[StructLayoutAttribute(LayoutKind.Sequential, Pack=4, Size=0, CharSet=CharSet.Ansi)]
internal struct ZStream
{
public IntPtr next_in;
public uint avail_in;
public uint total_in;
public IntPtr next_out;
public uint avail_out;
public uint total_out;
[MarshalAs(UnmanagedType.LPStr)]
string msg;
uint state;
uint zalloc;
uint zfree;
uint opaque;
int data_type;
public uint adler;
uint reserved;
}
#endregion
#endregion
#region Public enums
/// <summary>
/// Defines constants for the available compression levels in zlib
/// </summary>
public enum CompressLevel : int
{
/// <summary>
/// The default compression level with a reasonable compromise between compression and speed
/// </summary>
Default = -1,
/// <summary>
/// No compression at all. The data are passed straight through.
/// </summary>
None = 0,
/// <summary>
/// The maximum compression rate available.
/// </summary>
Best = 9,
/// <summary>
/// The fastest available compression level.
/// </summary>
Fastest = 1
}
#endregion
#region Exception classes
/// <summary>
/// The exception that is thrown when an error occurs on the zlib dll
/// </summary>
public class ZLibException : ApplicationException
{
/// <summary>
/// Initializes a new instance of the <see cref="ZLibException"/> class with a specified
/// error message and error code
/// </summary>
/// <param name="errorCode">The zlib error code that caused the exception</param>
/// <param name="msg">A message that (hopefully) describes the error</param>
public ZLibException(int errorCode, string msg) : base(String.Format("ZLib error {0} {1}", errorCode, msg))
{
}
/// <summary>
/// Initializes a new instance of the <see cref="ZLibException"/> class with a specified
/// error code
/// </summary>
/// <param name="errorCode">The zlib error code that caused the exception</param>
public ZLibException(int errorCode) : base(String.Format("ZLib error {0}", errorCode))
{
}
}
#endregion
#region Interfaces
/// <summary>
/// Declares methods and properties that enables a running checksum to be calculated
/// </summary>
public interface ChecksumGenerator
{
/// <summary>
/// Gets the current value of the checksum
/// </summary>
uint Value { get; }
/// <summary>
/// Clears the current checksum to 0
/// </summary>
void Reset();
/// <summary>
/// Updates the current checksum with an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
void Update(byte[] data);
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="ArgumentNullException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
void Update(byte[] data, int offset, int count);
/// <summary>
/// Updates the current checksum with the data from a string
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks>
void Update(string data);
/// <summary>
/// Updates the current checksum with the data from a string, using a specific encoding
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <param name="encoding">The encoding to use</param>
void Update(string data, Encoding encoding);
}
/// <summary>
/// Represents the method that will be called from a codec when new data
/// are available.
/// </summary>
/// <paramref name="data">The byte array containing the processed data</paramref>
/// <paramref name="startIndex">The index of the first processed byte in <c>data</c></paramref>
/// <paramref name="count">The number of processed bytes available</paramref>
/// <remarks>On return from this method, the data may be overwritten, so grab it while you can.
/// You cannot assume that startIndex will be zero.
/// </remarks>
public delegate void DataAvailableHandler(byte[] data, int startIndex, int count);
/// <summary>
/// Declares methods and events for implementing compressors/decompressors
/// </summary>
public interface Codec
{
/// <summary>
/// Occurs when more processed data are available.
/// </summary>
event DataAvailableHandler DataAvailable;
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
void Add(byte[] data);
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
void Add(byte[] data, int offset, int count);
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
void Finish();
/// <summary>
/// Gets the checksum of the data that has been added so far
/// </summary>
uint Checksum { get; }
}
#endregion
#region Classes
/// <summary>
/// Encapsulates general information about the ZLib library
/// </summary>
public class Info
{
#region DLL imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern uint zlibCompileFlags();
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern string zlibVersion();
#endregion
#region Private stuff
private uint _flags;
// helper function that unpacks a bitsize mask
private static int bitSize(uint bits)
{
switch (bits)
{
case 0: return 16;
case 1: return 32;
case 2: return 64;
}
return -1;
}
#endregion
/// <summary>
/// Constructs an instance of the <c>Info</c> class.
/// </summary>
public Info()
{
_flags = zlibCompileFlags();
}
/// <summary>
/// True if the library is compiled with debug info
/// </summary>
public bool HasDebugInfo { get { return 0 != (_flags & 0x100); } }
/// <summary>
/// True if the library is compiled with assembly optimizations
/// </summary>
public bool UsesAssemblyCode { get { return 0 != (_flags & 0x200); } }
/// <summary>
/// Gets the size of the unsigned int that was compiled into Zlib
/// </summary>
public int SizeOfUInt { get { return bitSize(_flags & 3); } }
/// <summary>
/// Gets the size of the unsigned long that was compiled into Zlib
/// </summary>
public int SizeOfULong { get { return bitSize((_flags >> 2) & 3); } }
/// <summary>
/// Gets the size of the pointers that were compiled into Zlib
/// </summary>
public int SizeOfPointer { get { return bitSize((_flags >> 4) & 3); } }
/// <summary>
/// Gets the size of the z_off_t type that was compiled into Zlib
/// </summary>
public int SizeOfOffset { get { return bitSize((_flags >> 6) & 3); } }
/// <summary>
/// Gets the version of ZLib as a string, e.g. "1.2.1"
/// </summary>
public static string Version { get { return zlibVersion(); } }
}
#endregion
}
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
namespace DotZLib
{
#region Internal types
/// <summary>
/// Defines constants for the various flush types used with zlib
/// </summary>
internal enum FlushTypes
{
None, Partial, Sync, Full, Finish, Block
}
#region ZStream structure
// internal mapping of the zlib zstream structure for marshalling
[StructLayoutAttribute(LayoutKind.Sequential, Pack=4, Size=0, CharSet=CharSet.Ansi)]
internal struct ZStream
{
public IntPtr next_in;
public uint avail_in;
public uint total_in;
public IntPtr next_out;
public uint avail_out;
public uint total_out;
[MarshalAs(UnmanagedType.LPStr)]
string msg;
uint state;
uint zalloc;
uint zfree;
uint opaque;
int data_type;
public uint adler;
uint reserved;
}
#endregion
#endregion
#region Public enums
/// <summary>
/// Defines constants for the available compression levels in zlib
/// </summary>
public enum CompressLevel : int
{
/// <summary>
/// The default compression level with a reasonable compromise between compression and speed
/// </summary>
Default = -1,
/// <summary>
/// No compression at all. The data are passed straight through.
/// </summary>
None = 0,
/// <summary>
/// The maximum compression rate available.
/// </summary>
Best = 9,
/// <summary>
/// The fastest available compression level.
/// </summary>
Fastest = 1
}
#endregion
#region Exception classes
/// <summary>
/// The exception that is thrown when an error occurs on the zlib dll
/// </summary>
public class ZLibException : ApplicationException
{
/// <summary>
/// Initializes a new instance of the <see cref="ZLibException"/> class with a specified
/// error message and error code
/// </summary>
/// <param name="errorCode">The zlib error code that caused the exception</param>
/// <param name="msg">A message that (hopefully) describes the error</param>
public ZLibException(int errorCode, string msg) : base(String.Format("ZLib error {0} {1}", errorCode, msg))
{
}
/// <summary>
/// Initializes a new instance of the <see cref="ZLibException"/> class with a specified
/// error code
/// </summary>
/// <param name="errorCode">The zlib error code that caused the exception</param>
public ZLibException(int errorCode) : base(String.Format("ZLib error {0}", errorCode))
{
}
}
#endregion
#region Interfaces
/// <summary>
/// Declares methods and properties that enables a running checksum to be calculated
/// </summary>
public interface ChecksumGenerator
{
/// <summary>
/// Gets the current value of the checksum
/// </summary>
uint Value { get; }
/// <summary>
/// Clears the current checksum to 0
/// </summary>
void Reset();
/// <summary>
/// Updates the current checksum with an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
void Update(byte[] data);
/// <summary>
/// Updates the current checksum with part of an array of bytes
/// </summary>
/// <param name="data">The data to update the checksum with</param>
/// <param name="offset">Where in <c>data</c> to start updating</param>
/// <param name="count">The number of bytes from <c>data</c> to use</param>
/// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
/// <exception cref="ArgumentNullException"><c>data</c> is a null reference</exception>
/// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
void Update(byte[] data, int offset, int count);
/// <summary>
/// Updates the current checksum with the data from a string
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks>
void Update(string data);
/// <summary>
/// Updates the current checksum with the data from a string, using a specific encoding
/// </summary>
/// <param name="data">The string to update the checksum with</param>
/// <param name="encoding">The encoding to use</param>
void Update(string data, Encoding encoding);
}
/// <summary>
/// Represents the method that will be called from a codec when new data
/// are available.
/// </summary>
/// <paramref name="data">The byte array containing the processed data</paramref>
/// <paramref name="startIndex">The index of the first processed byte in <c>data</c></paramref>
/// <paramref name="count">The number of processed bytes available</paramref>
/// <remarks>On return from this method, the data may be overwritten, so grab it while you can.
/// You cannot assume that startIndex will be zero.
/// </remarks>
public delegate void DataAvailableHandler(byte[] data, int startIndex, int count);
/// <summary>
/// Declares methods and events for implementing compressors/decompressors
/// </summary>
public interface Codec
{
/// <summary>
/// Occurs when more processed data are available.
/// </summary>
event DataAvailableHandler DataAvailable;
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
void Add(byte[] data);
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
void Add(byte[] data, int offset, int count);
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
void Finish();
/// <summary>
/// Gets the checksum of the data that has been added so far
/// </summary>
uint Checksum { get; }
}
#endregion
#region Classes
/// <summary>
/// Encapsulates general information about the ZLib library
/// </summary>
public class Info
{
#region DLL imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern uint zlibCompileFlags();
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern string zlibVersion();
#endregion
#region Private stuff
private uint _flags;
// helper function that unpacks a bitsize mask
private static int bitSize(uint bits)
{
switch (bits)
{
case 0: return 16;
case 1: return 32;
case 2: return 64;
}
return -1;
}
#endregion
/// <summary>
/// Constructs an instance of the <c>Info</c> class.
/// </summary>
public Info()
{
_flags = zlibCompileFlags();
}
/// <summary>
/// True if the library is compiled with debug info
/// </summary>
public bool HasDebugInfo { get { return 0 != (_flags & 0x100); } }
/// <summary>
/// True if the library is compiled with assembly optimizations
/// </summary>
public bool UsesAssemblyCode { get { return 0 != (_flags & 0x200); } }
/// <summary>
/// Gets the size of the unsigned int that was compiled into Zlib
/// </summary>
public int SizeOfUInt { get { return bitSize(_flags & 3); } }
/// <summary>
/// Gets the size of the unsigned long that was compiled into Zlib
/// </summary>
public int SizeOfULong { get { return bitSize((_flags >> 2) & 3); } }
/// <summary>
/// Gets the size of the pointers that were compiled into Zlib
/// </summary>
public int SizeOfPointer { get { return bitSize((_flags >> 4) & 3); } }
/// <summary>
/// Gets the size of the z_off_t type that was compiled into Zlib
/// </summary>
public int SizeOfOffset { get { return bitSize((_flags >> 6) & 3); } }
/// <summary>
/// Gets the version of ZLib as a string, e.g. "1.2.1"
/// </summary>
public static string Version { get { return zlibVersion(); } }
}
#endregion
}
+301 -301
View File
@@ -1,301 +1,301 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.IO;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements a compressed <see cref="Stream"/>, in GZip (.gz) format.
/// </summary>
public class GZipStream : Stream, IDisposable
{
#region Dll Imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
private static extern IntPtr gzopen(string name, string mode);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzclose(IntPtr gzFile);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzwrite(IntPtr gzFile, int data, int length);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzread(IntPtr gzFile, int data, int length);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzgetc(IntPtr gzFile);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzputc(IntPtr gzFile, int c);
#endregion
#region Private data
private IntPtr _gzFile;
private bool _isDisposed = false;
private bool _isWriting;
#endregion
#region Constructors
/// <summary>
/// Creates a new file as a writeable GZipStream
/// </summary>
/// <param name="fileName">The name of the compressed file to create</param>
/// <param name="level">The compression level to use when adding data</param>
/// <exception cref="ZLibException">If an error occurred in the internal zlib function</exception>
public GZipStream(string fileName, CompressLevel level)
{
_isWriting = true;
_gzFile = gzopen(fileName, String.Format("wb{0}", (int)level));
if (_gzFile == IntPtr.Zero)
throw new ZLibException(-1, "Could not open " + fileName);
}
/// <summary>
/// Opens an existing file as a readable GZipStream
/// </summary>
/// <param name="fileName">The name of the file to open</param>
/// <exception cref="ZLibException">If an error occurred in the internal zlib function</exception>
public GZipStream(string fileName)
{
_isWriting = false;
_gzFile = gzopen(fileName, "rb");
if (_gzFile == IntPtr.Zero)
throw new ZLibException(-1, "Could not open " + fileName);
}
#endregion
#region Access properties
/// <summary>
/// Returns true of this stream can be read from, false otherwise
/// </summary>
public override bool CanRead
{
get
{
return !_isWriting;
}
}
/// <summary>
/// Returns false.
/// </summary>
public override bool CanSeek
{
get
{
return false;
}
}
/// <summary>
/// Returns true if this tsream is writeable, false otherwise
/// </summary>
public override bool CanWrite
{
get
{
return _isWriting;
}
}
#endregion
#region Destructor & IDispose stuff
/// <summary>
/// Destroys this instance
/// </summary>
~GZipStream()
{
cleanUp(false);
}
/// <summary>
/// Closes the external file handle
/// </summary>
public void Dispose()
{
cleanUp(true);
}
// Does the actual closing of the file handle.
private void cleanUp(bool isDisposing)
{
if (!_isDisposed)
{
gzclose(_gzFile);
_isDisposed = true;
}
}
#endregion
#region Basic reading and writing
/// <summary>
/// Attempts to read a number of bytes from the stream.
/// </summary>
/// <param name="buffer">The destination data buffer</param>
/// <param name="offset">The index of the first destination byte in <c>buffer</c></param>
/// <param name="count">The number of bytes requested</param>
/// <returns>The number of bytes read</returns>
/// <exception cref="ArgumentNullException">If <c>buffer</c> is null</exception>
/// <exception cref="ArgumentOutOfRangeException">If <c>count</c> or <c>offset</c> are negative</exception>
/// <exception cref="ArgumentException">If <c>offset</c> + <c>count</c> is &gt; buffer.Length</exception>
/// <exception cref="NotSupportedException">If this stream is not readable.</exception>
/// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
public override int Read(byte[] buffer, int offset, int count)
{
if (!CanRead) throw new NotSupportedException();
if (buffer == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > buffer.Length) throw new ArgumentException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
GCHandle h = GCHandle.Alloc(buffer, GCHandleType.Pinned);
int result;
try
{
result = gzread(_gzFile, h.AddrOfPinnedObject().ToInt32() + offset, count);
if (result < 0)
throw new IOException();
}
finally
{
h.Free();
}
return result;
}
/// <summary>
/// Attempts to read a single byte from the stream.
/// </summary>
/// <returns>The byte that was read, or -1 in case of error or End-Of-File</returns>
public override int ReadByte()
{
if (!CanRead) throw new NotSupportedException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
return gzgetc(_gzFile);
}
/// <summary>
/// Writes a number of bytes to the stream
/// </summary>
/// <param name="buffer"></param>
/// <param name="offset"></param>
/// <param name="count"></param>
/// <exception cref="ArgumentNullException">If <c>buffer</c> is null</exception>
/// <exception cref="ArgumentOutOfRangeException">If <c>count</c> or <c>offset</c> are negative</exception>
/// <exception cref="ArgumentException">If <c>offset</c> + <c>count</c> is &gt; buffer.Length</exception>
/// <exception cref="NotSupportedException">If this stream is not writeable.</exception>
/// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
public override void Write(byte[] buffer, int offset, int count)
{
if (!CanWrite) throw new NotSupportedException();
if (buffer == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > buffer.Length) throw new ArgumentException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
GCHandle h = GCHandle.Alloc(buffer, GCHandleType.Pinned);
try
{
int result = gzwrite(_gzFile, h.AddrOfPinnedObject().ToInt32() + offset, count);
if (result < 0)
throw new IOException();
}
finally
{
h.Free();
}
}
/// <summary>
/// Writes a single byte to the stream
/// </summary>
/// <param name="value">The byte to add to the stream.</param>
/// <exception cref="NotSupportedException">If this stream is not writeable.</exception>
/// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
public override void WriteByte(byte value)
{
if (!CanWrite) throw new NotSupportedException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
int result = gzputc(_gzFile, (int)value);
if (result < 0)
throw new IOException();
}
#endregion
#region Position & length stuff
/// <summary>
/// Not supported.
/// </summary>
/// <param name="value"></param>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override void SetLength(long value)
{
throw new NotSupportedException();
}
/// <summary>
/// Not suppported.
/// </summary>
/// <param name="offset"></param>
/// <param name="origin"></param>
/// <returns></returns>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override long Seek(long offset, SeekOrigin origin)
{
throw new NotSupportedException();
}
/// <summary>
/// Flushes the <c>GZipStream</c>.
/// </summary>
/// <remarks>In this implementation, this method does nothing. This is because excessive
/// flushing may degrade the achievable compression rates.</remarks>
public override void Flush()
{
// left empty on purpose
}
/// <summary>
/// Gets/sets the current position in the <c>GZipStream</c>. Not suppported.
/// </summary>
/// <remarks>In this implementation this property is not supported</remarks>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override long Position
{
get
{
throw new NotSupportedException();
}
set
{
throw new NotSupportedException();
}
}
/// <summary>
/// Gets the size of the stream. Not suppported.
/// </summary>
/// <remarks>In this implementation this property is not supported</remarks>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override long Length
{
get
{
throw new NotSupportedException();
}
}
#endregion
}
}
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.IO;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements a compressed <see cref="Stream"/>, in GZip (.gz) format.
/// </summary>
public class GZipStream : Stream, IDisposable
{
#region Dll Imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
private static extern IntPtr gzopen(string name, string mode);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzclose(IntPtr gzFile);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzwrite(IntPtr gzFile, int data, int length);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzread(IntPtr gzFile, int data, int length);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzgetc(IntPtr gzFile);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int gzputc(IntPtr gzFile, int c);
#endregion
#region Private data
private IntPtr _gzFile;
private bool _isDisposed = false;
private bool _isWriting;
#endregion
#region Constructors
/// <summary>
/// Creates a new file as a writeable GZipStream
/// </summary>
/// <param name="fileName">The name of the compressed file to create</param>
/// <param name="level">The compression level to use when adding data</param>
/// <exception cref="ZLibException">If an error occurred in the internal zlib function</exception>
public GZipStream(string fileName, CompressLevel level)
{
_isWriting = true;
_gzFile = gzopen(fileName, String.Format("wb{0}", (int)level));
if (_gzFile == IntPtr.Zero)
throw new ZLibException(-1, "Could not open " + fileName);
}
/// <summary>
/// Opens an existing file as a readable GZipStream
/// </summary>
/// <param name="fileName">The name of the file to open</param>
/// <exception cref="ZLibException">If an error occurred in the internal zlib function</exception>
public GZipStream(string fileName)
{
_isWriting = false;
_gzFile = gzopen(fileName, "rb");
if (_gzFile == IntPtr.Zero)
throw new ZLibException(-1, "Could not open " + fileName);
}
#endregion
#region Access properties
/// <summary>
/// Returns true of this stream can be read from, false otherwise
/// </summary>
public override bool CanRead
{
get
{
return !_isWriting;
}
}
/// <summary>
/// Returns false.
/// </summary>
public override bool CanSeek
{
get
{
return false;
}
}
/// <summary>
/// Returns true if this tsream is writeable, false otherwise
/// </summary>
public override bool CanWrite
{
get
{
return _isWriting;
}
}
#endregion
#region Destructor & IDispose stuff
/// <summary>
/// Destroys this instance
/// </summary>
~GZipStream()
{
cleanUp(false);
}
/// <summary>
/// Closes the external file handle
/// </summary>
public void Dispose()
{
cleanUp(true);
}
// Does the actual closing of the file handle.
private void cleanUp(bool isDisposing)
{
if (!_isDisposed)
{
gzclose(_gzFile);
_isDisposed = true;
}
}
#endregion
#region Basic reading and writing
/// <summary>
/// Attempts to read a number of bytes from the stream.
/// </summary>
/// <param name="buffer">The destination data buffer</param>
/// <param name="offset">The index of the first destination byte in <c>buffer</c></param>
/// <param name="count">The number of bytes requested</param>
/// <returns>The number of bytes read</returns>
/// <exception cref="ArgumentNullException">If <c>buffer</c> is null</exception>
/// <exception cref="ArgumentOutOfRangeException">If <c>count</c> or <c>offset</c> are negative</exception>
/// <exception cref="ArgumentException">If <c>offset</c> + <c>count</c> is &gt; buffer.Length</exception>
/// <exception cref="NotSupportedException">If this stream is not readable.</exception>
/// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
public override int Read(byte[] buffer, int offset, int count)
{
if (!CanRead) throw new NotSupportedException();
if (buffer == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > buffer.Length) throw new ArgumentException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
GCHandle h = GCHandle.Alloc(buffer, GCHandleType.Pinned);
int result;
try
{
result = gzread(_gzFile, h.AddrOfPinnedObject().ToInt32() + offset, count);
if (result < 0)
throw new IOException();
}
finally
{
h.Free();
}
return result;
}
/// <summary>
/// Attempts to read a single byte from the stream.
/// </summary>
/// <returns>The byte that was read, or -1 in case of error or End-Of-File</returns>
public override int ReadByte()
{
if (!CanRead) throw new NotSupportedException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
return gzgetc(_gzFile);
}
/// <summary>
/// Writes a number of bytes to the stream
/// </summary>
/// <param name="buffer"></param>
/// <param name="offset"></param>
/// <param name="count"></param>
/// <exception cref="ArgumentNullException">If <c>buffer</c> is null</exception>
/// <exception cref="ArgumentOutOfRangeException">If <c>count</c> or <c>offset</c> are negative</exception>
/// <exception cref="ArgumentException">If <c>offset</c> + <c>count</c> is &gt; buffer.Length</exception>
/// <exception cref="NotSupportedException">If this stream is not writeable.</exception>
/// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
public override void Write(byte[] buffer, int offset, int count)
{
if (!CanWrite) throw new NotSupportedException();
if (buffer == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > buffer.Length) throw new ArgumentException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
GCHandle h = GCHandle.Alloc(buffer, GCHandleType.Pinned);
try
{
int result = gzwrite(_gzFile, h.AddrOfPinnedObject().ToInt32() + offset, count);
if (result < 0)
throw new IOException();
}
finally
{
h.Free();
}
}
/// <summary>
/// Writes a single byte to the stream
/// </summary>
/// <param name="value">The byte to add to the stream.</param>
/// <exception cref="NotSupportedException">If this stream is not writeable.</exception>
/// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
public override void WriteByte(byte value)
{
if (!CanWrite) throw new NotSupportedException();
if (_isDisposed) throw new ObjectDisposedException("GZipStream");
int result = gzputc(_gzFile, (int)value);
if (result < 0)
throw new IOException();
}
#endregion
#region Position & length stuff
/// <summary>
/// Not supported.
/// </summary>
/// <param name="value"></param>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override void SetLength(long value)
{
throw new NotSupportedException();
}
/// <summary>
/// Not supported.
/// </summary>
/// <param name="offset"></param>
/// <param name="origin"></param>
/// <returns></returns>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override long Seek(long offset, SeekOrigin origin)
{
throw new NotSupportedException();
}
/// <summary>
/// Flushes the <c>GZipStream</c>.
/// </summary>
/// <remarks>In this implementation, this method does nothing. This is because excessive
/// flushing may degrade the achievable compression rates.</remarks>
public override void Flush()
{
// left empty on purpose
}
/// <summary>
/// Gets/sets the current position in the <c>GZipStream</c>. Not supported.
/// </summary>
/// <remarks>In this implementation this property is not supported</remarks>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override long Position
{
get
{
throw new NotSupportedException();
}
set
{
throw new NotSupportedException();
}
}
/// <summary>
/// Gets the size of the stream. Not supported.
/// </summary>
/// <remarks>In this implementation this property is not supported</remarks>
/// <exception cref="NotSupportedException">Always thrown</exception>
public override long Length
{
get
{
throw new NotSupportedException();
}
}
#endregion
}
}
+105 -105
View File
@@ -1,105 +1,105 @@
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements a data decompressor, using the inflate algorithm in the ZLib dll
/// </summary>
public class Inflater : CodecBase
{
#region Dll imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
private static extern int inflateInit_(ref ZStream sz, string vs, int size);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int inflate(ref ZStream sz, int flush);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int inflateReset(ref ZStream sz);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int inflateEnd(ref ZStream sz);
#endregion
/// <summary>
/// Constructs an new instance of the <c>Inflater</c>
/// </summary>
public Inflater() : base()
{
int retval = inflateInit_(ref _ztream, Info.Version, Marshal.SizeOf(_ztream));
if (retval != 0)
throw new ZLibException(retval, "Could not initialize inflater");
resetOutput();
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
public override void Add(byte[] data, int offset, int count)
{
if (data == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
int total = count;
int inputIndex = offset;
int err = 0;
while (err >= 0 && inputIndex < total)
{
copyInput(data, inputIndex, Math.Min(total - inputIndex, kBufferSize));
err = inflate(ref _ztream, (int)FlushTypes.None);
if (err == 0)
while (_ztream.avail_out == 0)
{
OnDataAvailable();
err = inflate(ref _ztream, (int)FlushTypes.None);
}
inputIndex += (int)_ztream.total_in;
}
setChecksum( _ztream.adler );
}
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
public override void Finish()
{
int err;
do
{
err = inflate(ref _ztream, (int)FlushTypes.Finish);
OnDataAvailable();
}
while (err == 0);
setChecksum( _ztream.adler );
inflateReset(ref _ztream);
resetOutput();
}
/// <summary>
/// Closes the internal zlib inflate stream
/// </summary>
protected override void CleanUp() { inflateEnd(ref _ztream); }
}
}
//
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace DotZLib
{
/// <summary>
/// Implements a data decompressor, using the inflate algorithm in the ZLib dll
/// </summary>
public class Inflater : CodecBase
{
#region Dll imports
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
private static extern int inflateInit_(ref ZStream sz, string vs, int size);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int inflate(ref ZStream sz, int flush);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int inflateReset(ref ZStream sz);
[DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
private static extern int inflateEnd(ref ZStream sz);
#endregion
/// <summary>
/// Constructs an new instance of the <c>Inflater</c>
/// </summary>
public Inflater() : base()
{
int retval = inflateInit_(ref _ztream, Info.Version, Marshal.SizeOf(_ztream));
if (retval != 0)
throw new ZLibException(retval, "Could not initialize inflater");
resetOutput();
}
/// <summary>
/// Adds more data to the codec to be processed.
/// </summary>
/// <param name="data">Byte array containing the data to be added to the codec</param>
/// <param name="offset">The index of the first byte to add from <c>data</c></param>
/// <param name="count">The number of bytes to add</param>
/// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
public override void Add(byte[] data, int offset, int count)
{
if (data == null) throw new ArgumentNullException();
if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
if ((offset+count) > data.Length) throw new ArgumentException();
int total = count;
int inputIndex = offset;
int err = 0;
while (err >= 0 && inputIndex < total)
{
copyInput(data, inputIndex, Math.Min(total - inputIndex, kBufferSize));
err = inflate(ref _ztream, (int)FlushTypes.None);
if (err == 0)
while (_ztream.avail_out == 0)
{
OnDataAvailable();
err = inflate(ref _ztream, (int)FlushTypes.None);
}
inputIndex += (int)_ztream.total_in;
}
setChecksum( _ztream.adler );
}
/// <summary>
/// Finishes up any pending data that needs to be processed and handled.
/// </summary>
public override void Finish()
{
int err;
do
{
err = inflate(ref _ztream, (int)FlushTypes.Finish);
OnDataAvailable();
}
while (err == 0);
setChecksum( _ztream.adler );
inflateReset(ref _ztream);
resetOutput();
}
/// <summary>
/// Closes the internal zlib inflate stream
/// </summary>
protected override void CleanUp() { inflateEnd(ref _ztream); }
}
}
@@ -2,7 +2,7 @@
// © Copyright Henrik Ravn 2004
//
// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
//
using System;
@@ -17,7 +17,7 @@ using NUnit.Framework;
// Unit tests for the DotZLib class library
// ----------------------------------------
//
// Use this with NUnit 2 from http://www.nunit.org
// Use this with NUnit 2 from https://www.nunit.org
//
namespace DotZLibTests
@@ -156,7 +156,7 @@ namespace DotZLibTests
public void Info_Version()
{
Info info = new Info();
Assert.AreEqual("1.2.13", Info.Version);
Assert.AreEqual("1.3.2", Info.Version);
Assert.AreEqual(32, info.SizeOfUInt);
Assert.AreEqual(32, info.SizeOfULong);
Assert.AreEqual(32, info.SizeOfPointer);
+2 -2
View File
@@ -36,7 +36,7 @@ Build instructions:
in the same directory as the DotZLib.build file.
You can define 2 properties on the nant command-line to control the build:
debug={true|false} to toggle between release/debug builds (default=true).
nunit={true|false} to include or esclude unit tests (default=true).
nunit={true|false} to include or exclude unit tests (default=true).
Also the target clean will remove binaries.
Output file (DotZLib.dll) will be found in either ./DotZLib/bin/release
or ./DotZLib/bin/debug, depending on whether you are building the release
@@ -55,4 +55,4 @@ Build instructions:
Copyright (c) Henrik Ravn 2004
Use, modification and distribution are subject to the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
(See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
Loaded 100 of 1335 files, more files were not shown because too many files have changed in this diff. Show more