Ortszeit statt UTC
Setzt den OpenSpec-Change phase-3-ortszeit um (21/21 Aufgaben) und zieht
damit die in Phase 3 eingegangene Abweichung zurueck: DATE$, TIME$, TIMER
und NOW rechnen in der Zeitzone des Rechners, TIMER zaehlt ab der lokalen
Mitternacht.
Versatzermittlung
- jiff 0.2.35 als Abhaengigkeit von tb-runtime
- datetime::utc_versatz(zeitpunkt) ist der einzige Aufrufpunkt der
Bibliothek; die Kalenderrechnung darunter bleibt Eigenimplementierung
und sieht sie nie -- zwei Kalendermodelle nebeneinander waeren eine
dauerhafte Fehlerquelle
- Der Versatz gilt je Zeitpunkt, nicht je Programmlauf: ein Programm, das
ueber eine Zeitumstellung hinweg laeuft, folgt ihr
Zonenzustand
- Zeitzone { System, Fest(i32), Unbekannt } im RtState
- Fest(n) macht Tests und Korpusprogramme unabhaengig von der Zone des
Testrechners; TZ waere prozessweit und set_var seit Rust 2024 unsafe
Rueckfallebene
- Ohne ermittelbare Zone gilt UTC, das Programm laeuft weiter
- tbc run meldet den Rueckfall einmal beim Start auf der Fehlerausgabe,
nicht je Abfrage -- ein stiller Wechsel waere ein Verstoss gegen den
Guiding Principle
Korpus
- Neue Direktive ' tb-tz: +-HH:MM im Harness
- zeitzone.bas prueft Ortszeit, TIMER ab lokaler Mitternacht und den
Programmversatz gegen eine gesetzte Uhrzeit
- datumzeit.bas auf die Direktive umgestellt; Sollausgabe unveraendert
Nebenbefund
- TIMER trennt jetzt ganze Sekunden (Ortszeit) vom Bruchteil
(Systemuhr). Ohne die Trennung waere TIMER in Zonen mit halbstuendigem
Versatz gesprungen.
Dokumentation: die Abweichung "Uhr laeuft in UTC" entfaellt aus
sprachreferenz.md; bibliothek.md und PLAN.md nachgezogen, jiff steht im
Stufe-2-Ideenspeicher neben crossterm.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
16
PLAN.md
16
PLAN.md
@@ -347,13 +347,14 @@ Maßgeblich ist seit 2026-09-03 das Inventar, nicht diese Liste.
|
||||
**Offene Entscheidungen, die in spätere Phasen zeigen**
|
||||
|
||||
- Die Uhr lief zunächst in **UTC**, weil Ortszeit eine
|
||||
Zeitzonenbibliothek gebraucht hätte. Entscheidung 2026-09-04: die
|
||||
Bibliothek kommt, die Abweichung wird zurückgezogen → Change
|
||||
`phase-3-ortszeit`.
|
||||
Zeitzonenbibliothek gebraucht hätte. Mit dem Change
|
||||
`phase-3-ortszeit` (2026-09-04) ist die Abweichung zurückgezogen:
|
||||
`jiff` liefert den UTC-Versatz zu einem Zeitpunkt, die
|
||||
Kalenderrechnung bleibt Eigenimplementierung.
|
||||
- `LPRINT` schreibt am Programmende nach `LPT1.TXT` im Arbeitsverzeichnis;
|
||||
einen plattformübergreifenden Druckerkanal gibt es nicht.
|
||||
- Neue Abhängigkeit `unicode-width` (Doppelzellen). Für ISAM kommt `redb`
|
||||
hinzu.
|
||||
- Neue Abhängigkeiten: `unicode-width` (Doppelzellen) und `jiff`
|
||||
(Zeitzonenversatz). Für ISAM kommt `redb` hinzu.
|
||||
|
||||
## Phase 4 — Forms-Engine (`tb-ui::forms`)
|
||||
- [ ] Eingangsaufgabe (aus Phase 0 übernommen): Ereignisschleifen-
|
||||
@@ -435,9 +436,8 @@ bleibt gültig. Noch nichts davon ist beschlossen; Sammlung wächst:
|
||||
2026-09-04): in der Runtime integrierte Rust-Bibliotheken als eigene,
|
||||
importierbare Bibliotheken für BASIC-Programme bereitstellen —
|
||||
- **crossterm** für direkte Terminalsteuerung
|
||||
- **die Zeitzonenbibliothek** (ab dem Change `phase-3-ortszeit` in der
|
||||
Laufzeit): Zonennamen, Versatz zu einem Zeitpunkt, Umrechnung
|
||||
zwischen Zonen. Der Kernstandard braucht davon nur den Versatz für
|
||||
- **jiff** (seit dem Change `phase-3-ortszeit` in der Laufzeit):
|
||||
Zonennamen, Versatz zu einem Zeitpunkt, Umrechnung zwischen Zonen. Der Kernstandard braucht davon nur den Versatz für
|
||||
die Ortszeit; alles Weitere wäre eine Erweiterung.
|
||||
- Verteilung: `tbc build --exe` als Single-File-Tool-Baukasten
|
||||
|
||||
|
||||
Reference in New Issue
Block a user