On Nov 15, 2017, at 2:52 PM, Jean-Daniel via swift-evolution 
<swift-evolution@swift.org> wrote:
> Just a question about what it mean for API resilience. Actually, adding a 
> property to an existing class is not a breaking change. 
> 
> For a class that implements that protocol, as it will be possible to use 
> property accessor with any non existing property. Adding a new property to 
> this class will now change the class behavior in unexpected way as the old 
> client will still call the dynamic lookup method, but new code will use the 
> new accessor method. Is it something that should be mention in the «  Effect 
> on API resilience » section ?

Right.  Sure, I’ll add a mention of that.

-Chris


> 
> 
>> Le 15 nov. 2017 à 08:29, Chris Lattner via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> a écrit :
>> 
>> Hi All,
>> 
>> As a peer to the DynamicCallable proposal 
>> (https://gist.github.com/lattner/a6257f425f55fe39fd6ac7a2354d693d 
>> <https://gist.github.com/lattner/a6257f425f55fe39fd6ac7a2354d693d>), I’d 
>> like to get your feedback on making member lookup dynamically extensible.  
>> My primary motivation is to improve interoperability with dynamic languages 
>> like Python, Perl, Ruby, Javascript, etc, but there are other use cases 
>> (e.g. when working with untyped JSON).
>> 
>> In addition to being a high impact on expressivity of Swift, I believe an 
>> implementation can be done in a way with changes that are localized, and 
>> thus not have significant impact on the maintainability of the compiler as a 
>> whole.  Once the pitch phase of this proposal helps refine the details, I’ll 
>> be happy to prepare an implementation for consideration.
>> 
>> In case it is useful, I’m working on cleaning up my current prototype Python 
>> bindings.  I’ll share them in the next day or two in case they are useful to 
>> provide context.  It is amazingly simple: less than 500 lines of Swift code 
>> (plus some small additional C header glue to work around clang importer 
>> limitations) enables impressive interoperability.  The only problems are the 
>> verbosity addressed by this proposal and the peer DynamicCallable proposal.
>> 
>> 
>> Here is the canonical proposal URL:
>> https://gist.github.com/lattner/b016e1cf86c43732c8d82f90e5ae5438 
>> <https://gist.github.com/lattner/b016e1cf86c43732c8d82f90e5ae5438>
>> 
>> A snapshot of the proposal is included below in case it is useful.  Thanks 
>> in advance for help improving the proposal!
>> 
>> -Chris
>> 
>> 
>> Introduce User-defined "Dynamic Member Lookup" Types
>> 
>> Proposal: SE-NNNN 
>> <https://gist.github.com/lattner/NNNN-DynamicMemberLookup.md>
>> Author: Chris Lattner <https://github.com/lattner>
>> Review Manager: TBD
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to