time: HTTP-date and basic ISO 8601 formats #388
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Slice 3 of FIRST-PARTY.md gap 11: HTTP's
Datefield (RFC 9110 section 5.6.7) and S3's signing dates need a text format that is not RFC 3339. Depends on #111 (Date,Weekday,TimeParseError).Design (decided by the loop)
In
std/time:Timestamp.httpDate(): Stringwrites IMF-fixdate:Sun, 06 Nov 1994 08:49:37 GMT(fraction dropped, truncated towards negative infinity; English day and month names, fixed, not localized).static fn parseHttpDate(text: String): Result<Timestamp, TimeParseError>reads IMF-fixdate, and also the two obsolete formats RFC 9110 requires a recipient to accept: RFC 850 (Sunday, 06-Nov-94 08:49:37 GMT, two-digit year pivot fixed at 70: 70-99 mean 19xx, 00-69 mean 20xx, as POSIX%y, so parsing needs no clock) and asctime (Sun Nov 6 08:49:37 1994). The weekday name must match the date, otherwise refused.Timestamp.iso8601Basic(): String(20130524T000000Z) andTimestamp.parseIso8601Basic, plusDate.basic()(20130524); fixed UTC only.Acceptance criteria
std/timeUTCinstead ofGMT, a missing field are refused; two-digit-year pivot (69 -> 2069, 70 -> 1970); S3's documented example20130524T000000Zdocs/standard-library/time.mdupdated,skills/regenerated, FIRST-PARTY.md gap 11 progress notedDependencies
#111.
[loop:torbscript] refine: ready. #111 is closed, the design section already states goal, acceptance criteria and the std/time scope; no seed impact (pure std/time TorbScript, no syntax, native, driver flag or string-looked-up std name), one PR of at most two Conventional Commits. next: implement
[loop:torbscript] claim implement by session:loop-torbscript-20261023 until 2026-10-23T16:21Z
[loop:torbscript] release implement: lease expired 2026-10-23T16:21Z with no live worker and no result comment; no branch or PR exists. next: fresh implement worker
[loop:torbscript] claim implement by session:loop-torbscript-20261024 until 2026-10-24T04:30Z
[loop:torbscript] release implement: the implement worker died on a usage limit (weekly limit of its account) after opening PR #445. Checking CI of the PR for the remaining work. next: review
[loop:torbscript] review: PR #445 is open, forge CI gates still pending, next: waiting (CI running on PR #445)
[loop:torbscript] close: merged via PR (main CI green on the landed commit
bc504c24), issue closed. next: done