envoy / Embassy

Super lightweight async HTTP server library in pure Swift runs in iOS / MacOS / Linux

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Embassy doesn't build with Xcode 9 Beta + Swift 3.2

patricks opened this issue · comments

If I try to build Embassy with the latest Xcode 9 Beta 4, I get the following error message:

KqueueSelector.swift:75:34: Cannot convert value of type 'Int32' to expected argument type 'UInt'

It looks like the Darwin.kevent() method changed.

Added #37 that fixes this for Xcode 9

Any movement on this, would be great to be able to start using this with Xcode 9

bump

@patricks @kdubb @ccarranzaD3 @mattdeckard hey, sorry for long waiting guys, I was busy with other project. I am now back to this thing, will look int @kdubb's PR this week or next week, review and merge asap.

Thanks for @kdubb's help 👍

I am now back to this thing, will look int @kdubb's PR this week or next week, review and merge asap.

Thank you! I figured you didn't have time for this during the dev previews, so I came back now that 4.0 has been released :3

Thank you for coming back, Fang-Pen Lin. I use your project, but I (tried and) couldn't migrate it myself xD

@felix91gr @mattdeckard @ccarranzaD3 @kdubb @patricks

Embassy and Ambassador 4.0 are released with support for Swift 4.0. I think that would only support Xcode 9, as you can compile both Swift 3.2 and Swift 4 in the same project. But for Xcode 8, it probably won't work. However, as Embassy 3.0 and Ambassador 3.0 is targeting Xcode 8 environment, I don't see there is a reason to make a release for Swift 3.2, as you can always use Embassy / Ambassador 3.0 if you're still using Xcode 8.

If you are using Xcode 9 but mixed Swift 3.2 and Swift 4 dependencies, and mainly 3.2, you can modify your Podfile to make Embassy compile with Swift 4 like this

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      # Fakery is still using Swift 4.0
      next if target.name != 'Embassy'
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.0'
      end
    end
  end

Unless there is case cannot be covered with these, we probably will skip Swift 3.2 release, just keep going with Swift 4.