Apple Silicon: Die Uhr tickt im Mac künftig anders
Entwickler müssen bei den neuen ARM-Rechnern darauf achten, bestimmte Zeitroutinen nicht mehr zu verwenden. Sonst könnte Ungemach drohen.
Bei Apple beginnt mit dem Einbau von ARM-Prozessoren im Mac eine neue Zeitrechnung. Und das im wahrsten Sinne des Wortes: Die sogenannte Mach-Clock, über die die Uhrzeit berechnet wird, arbeitet bei Maschinen mit Apple Silicon anders als jenen mit Intel-Chips. Darauf macht Apple in seinem Entwicklerbereich aufmerksam.
Obacht, Ihr Entwickler!
Trickreich wird demnach die Verwendung der Funktion mach_absolute_time. Dieser muss man stets die sogenannte Timebase Information zuschlagen. "Nehmen Sie niemals an, dass die Funktion die Anzahl der Nanosekunden seit dem Bootvorgang zurückgibt", so Apple lapidar. Der Wert von mach_absolute_time sei "unterschiedlich bei nativen und übersetzten Prozessen" – also jenen, die über Rosetta 2 auf dem ARM-Mac laufen.
Apples eigene Doku zum Thema ist leider angestaubt. "Die Anwendung der Timebase-Informationen stellt sicher, dass Sie Zeitwerte zwischen Prozessen und verschiedenen Computern verteilen können", schreibt der Konzern weiter. Wichtig ist dies z.B. beim Schreiben von Logfiles, die sonst fehlerhafte Zeitstempel haben können.
Wann der Fehler auftreten kann
Aber auch andere Formen der Zeitberechnung sind betroffen, wie der renommierte Entwickler und Blogger Howard Oakley anmerkt, der auch Tipps zur Vermeidung des Problems gibt. "Ich habe das Gefühl, dass ein paar Apps, die unter Apple Silicon laufen, das spektakulär falsch machen werden." Man solle daher nicht überrascht sein, wenn insbesondere ältere Apps "Merkwürdigkeiten bei den Zeiten und Zeitintervallen" aufweisen.
Oakley zufolge kommt es sehr auf die Codebasis an. Stammt eine macOs-App von iOS ab (wo von Anfang an ARM verwendet wird) oder gar aus dem alten PowerPC-Universum, seien entsprechende Fehler wohl selten. Nutzer, die dennoch mit dem Problem konfrontiert werden, können von sich aus nichts tun – sie müssen hoffen, dass der jeweilige Entwickler schnell einen Bugfix nachlegt.
(bsc)