SE-0329: Clock, Instant, Date, and Duration

Per Date's encoding, we cannot break existing file formats - it would be an incredible shame if any change would make a file a user has saved somehow stop working because we change things; likewise we need to make sure that the stored values that are encoded are able to be deserialized by versions that exist in the wild today. That being said any additional new encoding forms; such as distributed actor based encoding or any potential future additions to the encoders/decoders can do more. '

In my view breaking file formats is worse than breaking ABI.

Part of the strategy is slightly split here: no functionality of Date will be lost, except perhaps cases like Date(timeIntervalSinceReferenceDate: .nan) which is nonsensical. Parts of the functionality will remain in Foundation, and parts of its functionality will be moved down. That split comes at the interoperation with bridging, localization, and calendrical interaction. The rest is in my opinion a core part of the behavior of Date itself.

3 Likes