<div dir="ltr">Thanks for sharing that, Slava! Reading that really helped me gain a better understanding of how the current reflection model works and how it could be extended.<div><br></div><div>Although my intended use cases are more for in-process type-level reflection akin to objc_copyClassList and class_copyPropertyList.</div><div><br></div><div>In any case, swift-dev isn&#39;t the best place to discuss this, so I&#39;ll synthesize my thoughts into a swift-evolution proposal shortly.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 7, 2015 at 11:51 PM, Slava Pestov <span dir="ltr">&lt;<a href="mailto:spestov@apple.com" target="_blank">spestov@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Jean-Pierre,<div><br></div><div><br><div><span class=""><blockquote type="cite"><div>On Dec 7, 2015, at 12:21 PM, Jean-Pierre Simard via swift-dev &lt;<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>&gt; wrote:</div><br><div><div dir="ltr">&gt; Note that I&#39;m already working on this part. The Swift runtime needs to provide low-level reflection interfaces that allow the standard library to implement Mirror without depending on private runtime ABI.<div><br></div><div>That&#39;s great to hear! Is there any chance that this work could introduce type-level reflection APIs that would allow reflecting uninstantiated types? Or should I make a formal proposal for this functionality in swift-evolution?</div></div></div></blockquote><div><br></div></span>There is a proposal for uninstantiated type metadata reflection in the GitHub repo in docs/proposals/RemoteMirrors.rst, but it might not cover your specific use-case. As Joe hinted, starting from concrete requirements is the best way forward here.</div><div><br></div><div>Slava</div><div><br><blockquote type="cite"><div><span class=""><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 7, 2015 at 9:01 AM, Joe Groff via swift-dev <span dir="ltr">&lt;<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><br>
&gt; On Dec 6, 2015, at 2:20 AM, Dmitri Gribenko via swift-dev &lt;<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>&gt; wrote:<br>
&gt;<br>
&gt; We need new runtime entry points that make sense for the new mirror<br>
&gt; implementation.  The current entry points (the _reflect() function and<br>
&gt; all its implementation details) directly depend on the old mirrors.<br>
&gt; This step is slightly harder, but not doesn&#39;t require extraordinary<br>
&gt; skills.  This part requires writing a proposal, because the runtime<br>
&gt; API is going to be stable.<br>
<br>
<br>
</span>Note that I&#39;m already working on this part. The Swift runtime needs to provide low-level reflection interfaces that allow the standard library to implement Mirror without depending on private runtime ABI.<br>
<br>
-Joe<br>
<div><div>_______________________________________________<br>
swift-dev mailing list<br>
<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-dev" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-dev</a><br>
</div></div></blockquote></div><br></div>
</span><img src="https://u2002410.ct.sendgrid.net/wf/open?upn=NLTid1W7V2mxBEfr5Y3KfTntaxSmOQp5vjACZc9Eh1-2B5Xh2Uq9pxF-2BmvHaZEQgJDU3WB5XTpT37iGr-2FSrAX98j9ATDo13ohDbBxUo1VZhtrdh48BkcKpBC-2BM-2FulD1uZyRLjZem8A9eRHxyk49bMPgppL1GMB9QF5aRjiyLGnIh8fj7tkDxTHIkkIypPDU15ZwjZFnnvNlKL7e40MJG3FkN3j-2Budl8kMPqeQBo378-2B0o-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">
_______________________________________________<span class=""><br>swift-dev mailing list<br><a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank">https://lists.swift.org/mailman/listinfo/swift-dev</a><br></span></div></blockquote></div><br></div></div></blockquote></div><br></div>