History of generic/tclDate.h of 5d0a3811679ebf33
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of file generic/tclDate.h at check-in 5d0a3811679ebf33

2026-08-10
09:58
Consolidate use of ©. Indenting file: [164583de62] check-in: [82a75b7cb9] user: jan.nijtmans branch: main, size: 16442
2026-05-25
14:28
More modern way of packing extra stuff into a hash entry file: [cb2078f96b] check-in: [bcf128d805] user: dkf branch: main, size: 16443
2026-05-17
15:06
More indentation/spacing corrections; no behaviour changes file: [597a7d5dd4] check-in: [7c918d5f96] user: dkf branch: main, size: 16471
2026-04-13
16:42
Fix [4724f35ada]: Avoid ClockClientData typedef redefinition file: [a41cbbe836] check-in: [82bb0e95a3] user: jan.nijtmans branch: core-9-0-branch, size: 16481
2026-02-23
09:17
Rebase to trunk. More bool's file: [c071cdcca6] check-in: [e0b054564f] user: jan.nijtmans branch: tip-748, size: 16531
2025-11-28
16:09
Minor changes: whitespace/formatting improvements. file: [2cc1f81cb9] check-in: [32db600597] user: dkf branch: main, size: 16530
2025-11-21
14:19
Yet more restrict of arguments file: [c5352e0adc] check-in: [0549feab22] user: dkf branch: c11-restrict, size: 16531
2025-11-17
16:46
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] file: [fdb09ed0d0] check-in: [fc87afd254] user: sebres branch: core-8-branch, size: 16905
2025-11-14
20:45
rewrite BCE/gregorian members as flags: CLF_BCE - for BCE, CLF_BGREG - for before Gregorian (in Julian calendar) file: [4db4605b95] check-in: [802d9d4984] user: sebres branch: bug-2a1d947d8c13506d-clock-valid-julian-cal, size: 16533
2025-10-10
14:11
Tranche 3 of adoption of bool file: [4d8c1d294c] check-in: [6e7e183bb2] user: dkf branch: c11-bool, size: 16434
2025-09-27
08:29
Fix errors from merge file: [d610d5b3ba] check-in: [de99b4dd08] user: dkf branch: c-std-update, size: 16438
2025-09-26
18:53
merge trunk file: [2c2f2be65d] check-in: [f0dcb3e615] user: dkf branch: c-std-update, size: 16437
2025-09-24
20:55
Fix some -Wconversion warnings. Clock simplifications file: [ae570e9197] check-in: [c742d8d60b] user: jan.nijtmans branch: main, size: 16432
2025-09-17
12:46
Apply 'Tcl' namespace to names (in [clock] impl) with wider scope than one C file file: [29f283ccb3] check-in: [5946bfc3ed] user: dkf branch: main, size: 16501
2025-08-12
09:06
More booleans. file: [ea2f5b7efa] check-in: [8a9080996d] user: dkf branch: c-std-update, size: 16816
2025-08-06
09:25
Start to use the real bool type. file: [50d5972962] check-in: [3dc71d011c] user: dkf branch: c-std-update, size: 16815
2025-05-27
19:11
More marking of paths as unreachable file: [498fb482d0] check-in: [1482b8cabb] user: dkf branch: tcl-unreachable, size: 16810
2025-03-12
17:00
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. file: [82768ff63e] check-in: [b730bd6161] user: sebres branch: core-8-branch, size: 16804
2024-11-21
21:14
fix leap seccond scan [f2b5f89c0d8520ea] (and [aee9f2b916afd976]): recognize leap second (estimate and/or via real leap second table), retain this extra second in the same calendar day as 23:59:59 UTC/GMT as describen in ISO 8601, more small fixes and improvements file: [374ecc755a] check-in: [d4b4648db7] user: sebres branch: bug-f2b5f89c0d-alt-leapsec, size: 17160
2024-05-13
15:41
Clean up a lot of small whitespace issues This is the dullest commit ever. Sorry. file: [3ece113e85] check-in: [3a60363aa1] user: dkf branch: main, size: 16827
2024-04-23
16:06
Hmm, something is broken. Leaving this here but this commit is definitely wrong somehow file: [48aefc27df] check-in: [b356268e32] user: dkf branch: tidy-indentation, size: 16769
2024-04-14
14:41
free tz.was (in exit handler) file: [134f08ce41] check-in: [a2b3bcbdc7] user: sebres branch: dgp-bug-167e0635db, size: 16780
2024-04-12
14:10
Clock not weak; clock strong! file: [ace55b728d] check-in: [110aa21b66] user: dkf branch: main, size: 16739
13:25
More cleaning up, notably no more symbols starting with _ as they're a reserved 'namespace' file: [62939b581c] check-in: [bfb42faa67] user: dkf branch: core-8-branch, size: 16739
2024-04-11
15:19
Next stage of migrating things to follow style: clock format support file: [1c501431ca] check-in: [3030150049] user: dkf branch: core-8-branch, size: 16744
2024-04-05
12:57
Proposed (partial) fix for [167e0635db]: `make valgrind` detections. Also fixes two constants in tclDate.h (for 32-bit platforms) file: [13a3a7bd3a] check-in: [561cb0ffb2] user: jan.nijtmans branch: bug-167e0635db, size: 16890
2024-03-24
17:01
TCL_MEM_DEBUG build: disable cache/storage-GC for released clock scan/format objects file: [5fb32ad8a3] check-in: [c0566e020d] user: sebres branch: tip-688, size: 16888
16:37
still one fix for [1f40aa83c552f597], now for freescan (overflow in tests clock-6.10e/clock-6.10f): rewritten with common str2int now file: [35ffe8b17a] check-in: [5696b3f72c] user: sebres branch: tip-688, size: 16811
2024-03-20
15:01
Review: use Tcl_Size for "length" in tclStrIdxTree.h. Macro tweaks. file: [ba7c2cade5] check-in: [0a30f8a5f1] user: jan.nijtmans branch: tip-688, size: 16724
2024-03-14
20:55
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); file: [850cd11f5b] check-in: [671ab612c6] user: sebres branch: sebres-9-0-clock-speedup-cr2, size: 16719
2024-03-12
02:05
merge sebres-8-6-clock-speedup-cr2 file: [ba8dd18947] check-in: [0f749a3048] user: sebres branch: sebres-9-0-clock-speedup-cr2, size: 16628
01:48
fixes #23: `clock add` regression (integer overflow in time part) file: [d80060bd54] check-in: [bbb77cc456] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 16692
01:43
replace sprintf with itoaw file: [2b28cf8e21] check-in: [7fcbaa0769] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 16646
01:33
consider TZ-epoch in base-cache (ensure cache of base is correct for :localtime if TZ changing) file: [9230043254] check-in: [1ea9fc6200] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 16553
2024-03-11
13:31
more int -> Tcl_Size file: [3b47baebb5] check-in: [02e59a0a50] user: jan.nijtmans branch: sebres-9-0-clock-speedup-cr2, size: 16425
11:02
Fix [1acd172c424b57c9] (by just reverting the change causing this). Not crucial for TIP #688. Also, make it compile/run using -DTCL_NO_DEPRECATED=1 file: [93752795c3] check-in: [3a21968956] user: jan.nijtmans branch: sebres-9-0-clock-speedup-cr2, size: 16420
2024-03-10
22:43
Merge 9.0. Misc improvements from 9.0 branch (which were lost in this branch) file: [d23e34c95b] check-in: [f6732570bb] user: jan.nijtmans branch: sebres-9-0-clock-speedup-cr2, size: 16435
2024-02-26
12:19
Rebase to latest 9.0 file: [3446fa9471] check-in: [7c433a7c10] user: jan.nijtmans branch: sebres-9-0-clock-speedup-cr2, size: 16470
2021-02-18
17:27
Get sebres-8-6-clock-speedup-cr2 ready for 8.7 too file: [94f03c108f] check-in: [829efd38ab] user: jan.nijtmans branch: sebres-8-7-clock-speedup-cr2, size: 16488
2020-10-15
10:09
Merge 8.6. More warning fixes file: [20966508eb] check-in: [5bfe57cf99] user: jan.nijtmans branch: sebres-8-6-clock-speedup-cr2, size: 16489
2020-10-12
16:47
Eliminate some eol-spacing, eliminate some gcc warnings (with -Wc++-compat) file: [84d4d6bb16] check-in: [bdaf55c9cc] user: jan.nijtmans branch: sebres-8-6-clock-speedup-cr2, size: 16455
2019-07-15
12:12
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) file: [38f9abae51] check-in: [ad1591d2df] user: sebres branch: sebres-8-6-clock-simplify-yy-flags, size: 16462
12:12
**interim** try simplify info-structure (replace yyHave... with flags) file: [cb0706aed0] check-in: [9e561572c3] user: sebres branch: sebres-8-6-clock-simplify-yy-flags, size: 16478
2019-03-13
00:21
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. file: [9d35e5f688] check-in: [b9804722b9] user: sebres branch: clock-astronomical-jdn, size: 16487
2019-01-25
20:18
fixes [16e4fc3096] julian day calculation (mostly affected for very small times, B.C.E. between 4714 and 4713), added test-cases covering that. file: [7acb2c3bea] check-in: [1a47e63d8d] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 16498
20:16
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") file: [8ae276f835] check-in: [1a89764772] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15922
2018-10-05
19:38
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) file: [f1238f6a88] check-in: [3175cbbb5f] user: sebres branch: sebres-8-6-clockmod-fix-dst-hole, size: 15892
2018-06-05
19:42
Try to trim all but timerate file: [da39a3ee5e] check-in: [d23dc7e2d5] user: dgp branch: mistake, size: 0
2018-05-29
17:26
fixed week-based calculation if neither mmdd nor ddd available; file: [78e2f4ed27] check-in: [4a386a66d2] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15800
17:25
validation rules: extended for day of year (and test covered now) file: [760b62e52a] check-in: [cfdbd76b55] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15778
17:24
validation rules ready for scan/freescan; test cases extended; code review and clean-up; running of test cases with and without validate. file: [54b9d765e5] check-in: [8905217602] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15770
17:20
try to re-implement validation rules for `clock scan` (option `-valid 1|0`), see http://core.tcl.tk/tcl/tktview?name=3475995 file: [af9029d4e8] check-in: [096133d01b] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15580
17:03
Added max permitted threshold (buffer size > result size) in percent, to directly return the buffer without reallocate (don't affect small formats with size < 80 (MIN_FMT_RESULT_BLOCK_ALLOC)) file: [23d592c82c] check-in: [2f98e44d4b] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15445
17:02
further optimization: better cache for GMT-timezone + minimize (re)allocation of buffers file: [202cd396d7] check-in: [a011e0dddc] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15282
16:45
try to resolve warnings by some forwards declarations: redefinition of typedef 'ClockScanToken' is a C11 feature [-Wtypedef-redefinition] file: [c52622b5da] check-in: [dc1c56b36a] user: sebres branch: sebres-8-6-clock-speedup-cr2, size: 15195
2017-08-08
15:19
fixed overflow of year (resp. julianday), closes ticket [16e4fc3096]; test cases adjusted. file: [19c40692b2] check-in: [3efed18ef8] user: sebres branch: sebres-8-6-clock-speedup-cr1, size: 15269
2017-06-07
12:38
Clock options should be alphabetica (so "-base" first). Struct members should start with lowercase. file: [12e666d964] check-in: [e6cadbd013] user: jan.nijtmans branch: sebres-8-6-clock-speedup-cr1, size: 15275
10:40
Fix LookupLastTransition() for behavior when tick < compVal, undo Tcl_EvalObjEx -> TclEvalObjEx change, eliminate two inline macro's which are only used once. Eliminate many unnecessary MODULE_SCOPE declarations (duplicated with header files) file: [dac56875e9] check-in: [0c978a034b] user: jan.nijtmans branch: sebres-8-6-clock-speedup-cr1, size: 15282
2017-06-02
20:10
fix default locale: differentiate between no locale specified or "C" (en) and current locale (corresponds system language, resp. env(LANG)) file: [a35eaf4c1f] check-in: [ee55ea8151] user: sebres branch: sebres-8-6-clock-speedup-cr1, size: 15284
20:09
close small performance degradation if alternate between two time zones (e. g. convert from one to another): additionally to last used cache also previously used time zone. file: [512fcfce86] check-in: [cb99d03ca3] user: sebres branch: sebres-8-6-clock-speedup-cr1, size: 15224
20:09
close small performance degradation if alternate between two locales (e. g. convert from one to another): additionally to last used cache also previously used locale. file: [9944e25577] check-in: [d4fdab951b] user: sebres branch: sebres-8-6-clock-speedup-cr1, size: 15147
20:08
Removed public interface to create smart-pointer to dictionaries "dict smartref", common locales catalog rewritten to hold internally onetime referenced merged locales (even as smart-ref). file: [10caa7353a] check-in: [b968c21bae] user: sebres branch: sebres-8-6-clock-speedup-cr1, size: 15000
08:12
Deleted: Merge core-8-6-branch. This removes the work currently being done in "sebres-8-6-clock-speedup-cr1" branch, but that will be merged again as soon as the work is done. All other changes in "trunk" since then (e.g. the INST_STR_CONCAT1 performance improvement, and the removal of SunOS-4) are retained. check-in: [3527801f9f] user: jan.nijtmans branch: trunk, size: 0
2017-05-31
08:59
More code review, e.g. use Tcl_SetObjResult in stead of Tcl_SetResult, preventing a (char *) type case. No functional changes. file: [3be28d0451] check-in: [a666a90e03] user: jan.nijtmans branch: sebres-8-6-clock-speedup-cr1, size: 14907
2017-05-30
08:46
small code review: resolves several warning on some compilers file: [ce28cdf4af] check-in: [7303c86999] user: sebres branch: sebres-8-6-clock-speedup-cr1, size: 14912
2017-01-10
23:02
"clock add" rewritten in C, using common functionality of "clock scan" (and freescan)... test-performance.tcl: test cases extended to cover "clock add" file: [a4dc6ba0f1] check-in: [aa8a330976] user: sebres branch: sebres-trunk-clock-speedup, size: 14906
23:01
code review and inline documentation file: [2199d15687] check-in: [32f8d2a556] user: sebres branch: sebres-trunk-clock-speedup, size: 14880
22:56
Merge remote-tracking branch 'remotes/fossil/trunk' into sb/trunk-rewrite-clock-in-c; + minor fixes after merge. file: [72d9bb48e6] check-in: [729ba9147c] user: sebres branch: sebres-trunk-clock-speedup, size: 15020
22:55
[unix] build for *nix fixed, code clean-ups; missing declarations; unused vars, functions etc; types normalization; file: [6e0dceceef] check-in: [db3de1c90d] user: sebres branch: sebres-trunk-clock-speedup, size: 15014
22:52
another way to make greedy search more precise, some greedy matches are fixed (see test cases clock-6.22.11 - clock-6.22.20), additionally involving look ahead token of known type into pre-search process. file: [bd5c109115] check-in: [806ca5a9bb] user: sebres branch: sebres-trunk-clock-speedup, size: 15106
22:52
some greedy matches are fixed (see test cases clock-6.22.11 and clock-6.22.12), involving space count in look ahead and end distance calculation (because spaces are optional in date-time string as well as in scanning format). file: [ef221bbfcb] check-in: [046e57526e] user: sebres branch: sebres-trunk-clock-speedup, size: 14958
22:44
several missing scan tokens added, test cases extended and fixed; token "%s" used for seconds only (time zone independent), additionally "%Es" token added for local seconds (zone dependent seconds); file: [afd348f8e2] check-in: [7636644d5f] user: sebres branch: sebres-trunk-clock-speedup, size: 14887
22:43
porting of clock format completed; all clock test cases passed file: [b9cc92abec] check-in: [83b76f35dd] user: sebres branch: sebres-trunk-clock-speedup, size: 14544
22:42
[temp-commit]: format almost ready (missing some tokens), sprintf replaced with _itoaw (because "sprintf" too slow) file: [b06933d3b1] check-in: [c2d2671112] user: sebres branch: sebres-trunk-clock-speedup, size: 14209
22:41
[temp-commit]: format almost ready (missing some tokens) file: [b465e726fa] check-in: [74b1067df5] user: sebres branch: sebres-trunk-clock-speedup, size: 14061
22:40
min length of %Y token (year with century) is 4, optional tokens possibility (zone), test cases extended file: [a9655768e9] check-in: [6470d72202] user: sebres branch: sebres-trunk-clock-speedup, size: 13688
22:39
other locale scan token switched from list seek to index tree + list search case insensitive now file: [e0906a89e3] check-in: [9d8c29fef0] user: sebres branch: sebres-trunk-clock-speedup, size: 13622
22:38
locale months scan switched to from list seek to index tree; bug fixing file: [3c76d78353] check-in: [ccac69357b] user: sebres branch: sebres-trunk-clock-speedup, size: 13572
22:37
string index tree for fast greedy search of the string (index) by unique string prefix as key; clock scan rewritten to use string index tries search; file: [4895d26894] check-in: [b4c38d6599] user: sebres branch: sebres-trunk-clock-speedup, size: 13532
22:36
cacheable conversions Local2UTC / UTC2Local fixed (some TZ switches time seconds bound) and optimized (last period ranges saved); prepare to back-port clock format file: [b802b56176] check-in: [e019f7bb93] user: sebres branch: sebres-trunk-clock-speedup, size: 13897
22:35
estimate token count by % char and format length (don't use fix TOK_CHAIN_BLOCK_SIZE by creation, minimized memory usage) file: [95b6ea6495] check-in: [b255142da5] user: sebres branch: sebres-trunk-clock-speedup, size: 13240
22:35
small optimization (determine min/max length, end distance, etc.) file: [0e86a5f20c] check-in: [2372e21f35] user: sebres branch: sebres-trunk-clock-speedup, size: 13241
22:34
clock scan almost ready (currently test-case covered tokens only), test cases passed; todo - check other tokens from "clock.tcl" file: [77b92db361] check-in: [a93337e305] user: sebres branch: sebres-trunk-clock-speedup, size: 13199
22:33
repaired system/current locale caching (also for legacy clock format) and legacy timezone cached as last file: [d83bc9ef2c] check-in: [9ea29b41ee] user: sebres branch: sebres-trunk-clock-speedup, size: 13016
22:32
scan format: several tokens implemented, bug fixing and code review; precedence yyyymmdd over yyyyddd was changed (and re-covered in test-cases also), see http://core.tcl.tk/tcl/tktview/e7a722cd3573fedda5d1e528f95902776f996e06 file: [cfadb359cf] check-in: [8c549a614f] user: sebres branch: sebres-trunk-clock-speedup, size: 12973
22:31
%j token as day of year; clear flags implemented (to provide last-wins functionality) file: [e48887411e] check-in: [87d5d96e34] user: sebres branch: sebres-trunk-clock-speedup, size: 12344
22:30
improve LocalizeFormat, internal caching of localized formats inside msgcat for locale and format objects smart reference introduced in dict (smart pointer with 0 object reference but increase dict-reference, provide changeable locale dict) code review file: [07a79dd2b7] check-in: [d046a15756] user: sebres branch: sebres-trunk-clock-speedup, size: 12204
22:28
improve LocalizeFormat, internal caching of localized formats inside msgcat for locale and format objects smart reference introduced in dict (smart pointer with 0 object reference but increase dict-reference, provide changeable locale dict) file: [10936adc09] check-in: [5a9e936f41] user: sebres branch: sebres-trunk-clock-speedup, size: 10921
22:25
l10n (with caching) implemented, msgcat package optimized, code review, etc. file: [1e83213212] check-in: [72c1fb37fb] user: sebres branch: sebres-trunk-clock-speedup, size: 10825
22:23
[temp-commit]: not ready file: [06a952fed4] check-in: [aaa8104615] user: sebres branch: sebres-trunk-clock-speedup, size: 9653
22:21
several initialize and finalize facilities file: [5d7f305d83] check-in: [2ecbc35da6] user: sebres branch: sebres-trunk-clock-speedup, size: 8877
22:20
amend for caching of UTC2Local / Local2UTC: * tzdata used internally only (because cached, replaced with timezone object as parameter for several functions) * small improvement (don't need to convert UTC to UTC) file: [5989710c08] check-in: [88a754d7a9] user: sebres branch: sebres-trunk-clock-speedup, size: 8671
22:19
[temp-commit]: code review, DST-hole mistake by scan with relative time resolved; caching of UTC2Local / Local2UTC cherry picked file: [1c1c1e321b] check-in: [7994727d55] user: sebres branch: sebres-trunk-clock-speedup, size: 8671
22:15
[temp-commit]: clock scan tokenizer logic ready (still needs many rules) caching extended (currentYearCentury, yearOfCenturySwitch, lastBaseDate ...) file: [fd63d09a2f] check-in: [8688a01f7a] user: sebres branch: sebres-trunk-clock-speedup, size: 6401
22:10
[temp-commit]: tclClockFmt.c - amend for 2nd try (with cherry picking of tclSE incompatible facilities) Prepared for common usage of both scan commands - free scan / scan with format (currently faked via eval to __org_scan); test cases passed. file: [f56c95f061] check-in: [00cf5b57cd] user: sebres branch: sebres-trunk-clock-speedup, size: 5845
22:09
[temp-commit]: tclClockFmt.c - 2nd try (with cherry picking of tclSE incompatible facilities) Prepared for common usage of scan command (free scan / format scan) file: [beb4bada63] check-in: [d08701ba5c] user: sebres branch: sebres-trunk-clock-speedup, size: 4637
22:07
[temp-commit]: tclClockFmt.c - 1st try using "timerate" instead "time" by performance measurement tests (more precise and fixed time, so no switch of factor expected) file: [a9c7c3fd83] check-in: [5b16c75353] user: sebres branch: sebres-trunk-clock-speedup, size: 2748
22:04
[temp-commit]: ClockFreeScan back-ported (cherry picked), all tests case passed + several new test-cases for bug fixing implemented here; environment epoch ported, several fixes for the time zone / tzdata caching ported; mem-leak fix + memory leak test cases passed file: [f580e849f1] check-in: [e04d99d9ef] user: sebres branch: sebres-trunk-clock-speedup, size: 1667
21:58
Added: [temp-commit]: clock scan with several optimization porting, still not-ready file: [e89f0b260b] check-in: [1bb8c6a194] user: sebres branch: sebres-trunk-clock-speedup, size: 1524