thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Simpson (JIRA)" <>
Subject [jira] [Commented] (THRIFT-4547) Finish the conversion to native swift (, cross test)
Date Fri, 21 Jun 2019 20:02:00 GMT


Chris Simpson commented on THRIFT-4547:

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 (, cross test)
> ----------------------------------------------------------------
>                 Key: THRIFT-4547
>                 URL:
>             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
> {quote}
> Has the file been updated?
> {quote} has not been updated
> {quote}
> Has the build/docker/ file been updated?
> {quote}build/docker/ 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

View raw message