-
Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: schily 04.01.17 - 14:32
Hatten wir nicht gerade rückwärtslaufende Uhren auf go in Folge der Schaltsekunde?
-
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: niklasR 04.01.17 - 14:39
Nur weil sie nicht monoton ist, ist sie nicht "defekt". Vll nicht ideal für diesen Einsatzzweck, aber solange man sowas im Hinterkopf behält, durchaus nutzbar.
-
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: Anonymer Nutzer 04.01.17 - 14:40
inwiefern ist die implementierung defekt? sie tut genau das, was sie tun sollte. der programmierer hat sie nur falsch verwendt. keine einzige api spezifiziert, dass zwei abfragen der aktuellen uhrzeit in irgendeiner relation zueinander stehen. das ginge ja auch gar nicht.
-
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: mnementh 04.01.17 - 14:57
schily schrieb:
--------------------------------------------------------------------------------
> Hatten wir nicht gerade rückwärtslaufende Uhren auf go in Folge der
> Schaltsekunde?
Kannst Du ein Beispiel dafür geben was falsch lief? Oder wurde es nur falsch verwendet, weil eine dieser falschen Annahmen vorausgesetzt wurden:
https://www.wired.com/2012/06/falsehoods-programmers-believe-about-time/ -
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: Vanger 04.01.17 - 15:11
Man hat übersehen, dass Unix Timestamps per Design Schaltsekunden ignorieren und eine Sekunde zurückspringen. Go abstrahiert das nicht weg sondern verlässt sich auf die vom OS gemeldete Zeit.
Sich darauf zu verlassen, dass ein späterer Aufruf der time-Funktion immer einen Wert >= eines früheren Aufrufs zurückliefert ist aber generell keine gute Idee, Schaltsekunden sind da nur eine mögliche Fehlerquelle. Man denke z.B. daran, dass die Systemuhr falsch lief und von NTP zwischenzeitlich korrigiert wurde... -
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: mnementh 04.01.17 - 16:20
Vanger schrieb:
--------------------------------------------------------------------------------
> Man hat übersehen, dass Unix Timestamps per Design Schaltsekunden
> ignorieren und eine Sekunde zurückspringen. Go abstrahiert das nicht weg
> sondern verlässt sich auf die vom OS gemeldete Zeit.
>
> Sich darauf zu verlassen, dass ein späterer Aufruf der time-Funktion immer
> einen Wert >= eines früheren Aufrufs zurückliefert ist aber generell keine
> gute Idee, Schaltsekunden sind da nur eine mögliche Fehlerquelle. Man denke
> z.B. daran, dass die Systemuhr falsch lief und von NTP zwischenzeitlich
> korrigiert wurde...
Oder Sommerzeit/Winterzeit. Zeit läuft eben manchmal rückwärts. -
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: Vanger 04.01.17 - 17:06
Gut, Zeitzonen und Sommer-/Winterzeit stören einen Unix Timestamp jetzt weniger ;)
-
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: schily 04.01.17 - 17:25
Nein, timestamps auf UNIX springen nicht zurück.
UNIX hat streng monoton aufsteigende Timestamps wenn man nicht die Uhrzeit von Hand stellt. -
Re: Ausgerechnet "go" mit seiner defekten Zeitimplementierung
Autor: Vanger 04.01.17 - 19:59
Bitte informiere dich bevor du behauptest die Aussage eines anderen sei falsch...
Schaltsekunden werden von UNIX Timestamps ausdrücklich (!) nicht berücksichtigt, der Standard schreibt explizit vor, dass der Timestamp zurückspringen muss (Alternative Lösungen wie das Anhalten der Uhr sind nicht standardkonform, kommen aber ohnehin kaum irgendwo zum Einsatz). Man hat sich dafür entschieden, dass die Annahme, ein Tag dauert exakt 86400 Sekunden, wichtiger ist als die Darstellung von Schaltsekunden.



