[swift-evolution] Question regarding SE-0167 Swift Encoders
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:
>> (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.
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).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution