[swift-evolution] Question regarding SE-0167 Swift Encoders
Gwendal Roué
gwendal.roue at gmail.com
Wed May 31 14:19:13 CDT 2017
> Le 31 mai 2017 à 15:39, David Hart <david at hartbit.com> a écrit :
>
>>
>> On 31 May 2017, at 14:36, Gwendal Roué via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>> Itai,
>>
>> (This email is not technical)
>>
>> I'm not claiming that SE-0166 should be able to address all archival formats. I've been talking about GRDB to show at least one format that SE-0166 doesn't cover well. And should SE-0166 be fixed to support SQL (in the GRDB fashion), this does not mean that other developers won't eventually fight with SE-0166 until they understand it does not fit their bill.
>>
>> But there's something very special with SE-0166:
>>
>> It's in the standard library, with all the backward-compatibility constraints that come with such a position.
>>
>> IT'S BLESSED WITH CODE GENERATION.
>
> One important future goal I hope we can address in future versions of Swift is powerful macro/meta-programming features. I think like Sourcery (https://github.com/krzysztofzablocki/Sourcery <https://github.com/krzysztofzablocki/Sourcery>) but at compile-time, in the language. Once we have that, I hope we can re-implement SE-0166’s code generation using those meta-programming features into the Standard Library and tear it out of the compiler. If we can achieve that, we will have a strong toolbox for any third-library which have similar needs.
>
> PS: With meta-programming, we could also re-implement the automatic Equatable/Hashable conformances. More magic in the compiler is usually a bad thing I think.
Hi David,
You're right, it's possible that SE-0166 eventually uses future macro-like features.
When this happens, the code generation blessing will be available to all Swift users, and SE-0166 will no longer be the necessary underlying foundation for libraries that want to use its code generation features (regardless of whether they are right or wrong: library developers don't think like compiler developers).
Gwendal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170531/c2c6fbb1/attachment.html>
More information about the swift-evolution
mailing list