[ 
https://issues.apache.org/jira/browse/THRIFT-4547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16869841#comment-16869841
 ] 

Chris Simpson commented on THRIFT-4547:
---------------------------------------

[~jking3] 
Apologies for the delayed responses, I've been away from Swift development for 
a bit.  Just now hearing that a proper version was released with the Swift 
library!  
Also just in time to come tidy up some of these loose ends, I've been given 
time to work on the library some more, with the intention of updating it for 
Swift 5.0 (or 5.1) compatibility.  The current library supports Swift 3 through 
4.2.1 (and tentatively with 5.0, but SPM breaks due to SPM 3.0 packages being 
deprecated with 5.0) but breaks on Swift 5.1 due to breaking changes with some 
standard library API's being fully deprecated finally.

The benefits with 5.0 and 5.1 however mean we finally get binary and module 
level ABI stability, which can mean great things for Thrift dependencies! 
(pre-compiled Thrift Swift binaries is now a realistic possibility!)

Over the next week or two when I have time allocated I'll draft up all the 
requirements based on this ticket, current issues listed on my independent 
library repository, and changes to Swift that will be beneficial to the 
library's interfaces and performance.  The goal will be maintaining backward 
compatibility in the generator (for the existing flagged Cocoa/Swift2 
implementation, and the Swift 3-5.0 implementation which will fall under a flag 
now), My existing SPM library repository will remain active for supporting 
compatibility of old versions, however it will be deprecated in use for the new 
library as Swift Package Manager finally supports directory scoping of source 
files, meaning the Thrift project hosted by apache can be the single source of 
truth for both SPM and CocoaPods use cases.

> Finish the conversion to native swift (LANGUAGES.md, cross test)
> ----------------------------------------------------------------
>
>                 Key: THRIFT-4547
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4547
>             Project: Thrift
>          Issue Type: Story
>          Components: Swift - Library
>    Affects Versions: 0.12.0
>            Reporter: James E. King III
>            Assignee: Chris Simpson
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Support for Swift-3 was added in THRIFT-3773, however this work needs to be 
> completed.
> Are there breaking changes?
> {quote}No/Yes? The compiler is written to allow for the Old Cocoa/Swift with 
> a compiler flag, so anyone still using swift 1 or 2 should still be able to 
> use the Cocoa style generator but will have to use a compiler flag
> {quote}
> Are they documented?
> {quote}I don't believe thats documented anywhere
> {quote}
> Is it already running in the cross test or is that future work?
> {quote}No tests written for this, that is future work
> {quote}
> Can this be exercised in the Travis CI build environment? (make check, make 
> cross?)
> {quote}Should be exercisable in Travis though no tests currently
> {quote}
> Can I add swift support to Ubuntu Xenial and Artful?
> {quote}I'm not sure where the Swift compiler support for Xenial and Artful 
> currently is, but should be available.
> {quote}
> What minimum and maximum versions are known supported?
> {quote}Given backwards compatibility with Cocoa/Swift generator this should 
> work with all Swift versions v1 through v4 (for Swift 1 and 2, the Cocoa 
> library which is Obj-C is required along with the cocoa flag when generating 
> code, for Swift 3+ the dedicated Swift library is required)
> {quote}
> Has the LANGUAGES.md file been updated?
> {quote}LANGUAGES.md has not been updated
> {quote}
> Has the build/docker/README.md file been updated?
> {quote}build/docker/README.md have not been updated
> {quote}
> Is this supposed to replace the cocoa implementation? Should that be removed?
> {quote}The cocoa implementation is separate from this implementation. The 
> Cocoa compiler/libraries exist for Obj-C, and Swift 1 & 2, whereas Swift 3+ 
> operate independently without Cocoa (as Swift 3 and up can run on Linux 
> without Obj-C runtime/libraries). That being said the old Swift/Cocoa 
> compiler is "gone/removed" and there is "only 1 Swift compiler" given the old 
> Swift/Cocoa compiler is integrated in this as a compiler flag
> {quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to