<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><span></span></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>I am already seeing incompatibilities showing up on this list between this OC-less Swift and the OC-backed Swift that could have been avoided if this project supports OC bridging and some OC backend is provided.<br><br>Sent from my iPad</div><div><br>On Dec 4, 2015, at 04:52, David Hart &lt;<a href="mailto:david@hartbit.com">david@hartbit.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><div class="">GC,</div><div class=""><br class=""></div><div class="">I just went to check the code for the corelibs and saw that the current iteration is a pretty close direct API mapping of the Objective-C Foundation framework. If this stays the case, then I think I agree with you.</div><div class=""><br class=""></div><div class="">I was under the impression (my bad for not investigating beforehand) was that corelibs was an original library that provided the functionality of the Foundation framework but using all the power and idioms of Swift. I would have preferred that.</div><div class=""><br class=""></div><div class="">David.</div><br class=""><div><blockquote type="cite" class=""><div class="">On 03 Dec 2015, at 21:37, Gregory Casamento &lt;<a href="mailto:greg.casamento@gmail.com" class="">greg.casamento@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_default" style="font-family:courier new,monospace">David,</div><div class="gmail_default" style="font-family:courier new,monospace"><br class=""></div><div class="gmail_default" style="font-family:courier new,monospace">There wouldn't be any need to do it for every platform. &nbsp; There is one objective-C runtime GNUstep uses for every platform it runs on. &nbsp; So there is no need for it to be different.</div><div class="gmail_default" style="font-family:courier new,monospace"><br class=""></div><div class="gmail_default" style="font-family:courier new,monospace">Reimplementing everything in pure swift is silly because it would not allow re-use of all of the objective-c that is out there which is one of the advantages of swift in the first place.</div><div class="gmail_default" style="font-family:courier new,monospace"><br class=""></div><div class="gmail_default" style="font-family:courier new,monospace"><br class=""></div><div class="gmail_default" style="font-family:courier new,monospace">GC</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Dec 3, 2015 at 3:32 PM, David Hart <span dir="ltr" class="">&lt;<a href="mailto:david@hartbit.com" target="_blank" class="">david@hartbit.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class=""><span class=""><div class=""><span style="background-color:rgba(255,255,255,0)" class="">I also agree with Adrian. I would much prefer to see efforts put towards implementing a pure Swift foundation API than supporting a Cocoa implementation and bridge on every platform Swift will run on.</span></div></span><div class=""><br class=""><span class="">On 03 Dec 2015, at 21:01, Gregory Casamento &lt;<a href="mailto:greg.casamento@gmail.com" target="_blank" class="">greg.casamento@gmail.com</a>&gt; wrote:<br class=""><br class=""></span></div><blockquote type="cite" class=""><div class=""><div class=""><div class="h5">Way ahead of you<br class=""><div class="gmail_quote"><div dir="ltr" class="">On Thu, Dec 3, 2015 at 15:01 Maxthon Chan &lt;<a href="mailto:xcvista@me.com" target="_blank" class="">xcvista@me.com</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Swift developers:<br class="">
<br class="">
Maybe you have never heard of it, but there have been several ongoing efforts, like GNUstep and Cocotron, at maintaining an open source Foundation reimplementation for alternative operating systems like Linux. It seemed to me that the current release of Swift did not put such efforts into consideration and brutally broke compatibility between Swift and Objective-C on Linux. I understand the fact that Apple is unwilling to release source code of Foundation, and this is usually where those alternative implementations comes into play.<br class="">
<br class="">
Some of such projects, like GNUstep, are mature enough to allow existing AppKit applications written in Objective-C, like TextEdit and Chess, to be ported from OS X to Linux and Windows without changing too much, if any, code, taking all modern Objective-C features like ARC and object subscripting with stride, with a compatible version of LLVM compiler. Meanwhile, with the current version of Swift, even if the Swift code is written with calls to Objective-C runtime assuming the case on OS X, it is broken under Linux even with libobjc linked in.<br class="">
<br class="">
I am here suggesting keeping the Objective-C bridge intact at least when built with a compatible version of libobjc (and GNUstep project have one already.) This will allow users of such alternative Foundation reimplementations to use their favourite Foundation distribution in place of the version provided by the Swift project, retaining the code compatibility already established between OS X and Linux by those Swift reimplementations.<br class="">
<br class="">
In such an environment the alternative Foundation implementation will provide their own version of CoreFoundation and Foundation, implemented using C and Objective-C, as well as a libobjc that supports ARC. The Swift environment would be built without its own CoreFoundation and Foundation, but linking against the provided version instead, bridging calls just like OS X version of Swift does. This will also allow the new Swift platform to take full advantage of the AppKit came with the alternative Foundation, allow porting full OS X apps to Linux a lot easier. The above also applies for porting iOS apps, if the alternative Foundation implementation also comes with their own UIKit.<br class="">
<br class="">
Max_______________________________________________<br class="">
Gnustep-dev mailing list<br class="">
<a href="mailto:Gnustep-dev@gnu.org" target="_blank" class="">Gnustep-dev@gnu.org</a><br class="">
<a href="https://lists.gnu.org/mailman/listinfo/gnustep-dev" rel="noreferrer" target="_blank" class="">https://lists.gnu.org/mailman/listinfo/gnustep-dev</a><br class="">
</blockquote></div>
</div></div><img src="https://u2002410.ct.sendgrid.net/wf/open?upn=nE9rxSXA5G4kxsTVkgv43hXwizS3O2z60WweqomIrdi-2BEaS-2BJ2hxIv0J8cZTjA888MVJbitNPlWmiV4DpafvCPkdNCYZZuiMLSFH-2BEI1UhJyOU25K7ouEjAkL0afNSWyhxmjTBR3tGr5vAVYTLtV2ZDM9Pr4ftquOBQNjJQvaLVqmtypEKjfyK1v9d-2BbHuIu9IpTAHfZbA5g-2BHjYw7kdm3ziQqm9XhFnljxXgN4ojig-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" class="">
</div></blockquote><span class=""><blockquote type="cite" class=""><div class=""><span class="">_______________________________________________</span><br class=""><span class="">swift-evolution mailing list</span><br class=""><span class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a></span><br class=""><span class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br class=""></div></blockquote></span></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature">Gregory Casamento<br class="">GNUstep Lead Developer / OLC, Principal Consultant<br class=""><a href="http://www.gnustep.org/" target="_blank" class="">http://www.gnustep.org</a> - <a href="http://heronsperch.blogspot.com/" target="_blank" class="">http://heronsperch.blogspot.com</a><br class=""><a href="http://ind.ie/phoenix/" target="_blank" class="">http://ind.ie/phoenix/</a></div>
</div>
</div></blockquote></div><br class=""></div></blockquote></div></body></html>