Noze 0.5.0 - Swift 3 only
Good news everyone!
We can finally make a release which leaves Swift 2 behind and works with a
Swift 3 on both, macOS and tuxOS. We call that release: 0.5.0.
This removes all the #if swift(>=3) in the source making it much cleaner
and straight forward.
Another big advantage is that the Linux Swift packages now come with
libdispatch
included.
There is still a glitch which requires us to use Swift 3.0.0 on macOS and
Swift 3.0.1 Preview 2 on tuxOS. We hope that detail gets resolved when Swift
3.0.1 is released.
The issue with Swift 3 on Linux
As mentioned before the libdispatch embedded in the Linux Swift 3.0.0 release contains a crasher bug (SR-2656) and hence can’t be used to run Noze.io on Linux. Good news: SR-2656 has been fixed in Swift 3.0.1 Preview 2! And a cursery check says that everything is working as expected.
Now of course it wouldn’t be Swift 3 if it wouldn’t come with an incompatible change to the language 😬 Please welcome SR-2907. It is a preview release only though, we’ll see whether SR-2907 is fixed for the final 3.0.1.
Summary: Noze.io now works with the Swift 3.0.1 Preview 2 on Linux. For macOS we stick to Xcode 8 (you can’t use Xcode 8.1b2 on macOS!).
Changes in 0.5.0 (from 0.3.1)
- all modules
- drop support for Swift 2.x
- drop support for old libdispatch, use Objective-GCD
- updates for Swift 3.0.0 final
Processis nowCommandLine@noreturnis now-> Never.dynamicTypeis nowtype(of:)- casts are different,
withMemoryRebound(to:)and companions @escapingworks differentlyAnyvsAny?vsAnyObject- first keyword argument
XYZLiteralConvertibleis nowExpressibleByXYZOutputStreamis nowTextOutputStream- etc.
streamsmodule- bugfix(TBD):
read()andpushcan interleave
- bugfix(TBD):
fsmodule- FSWatcher not available anymore on Linux
processmodule- drop Linux hack, Linux now has Foundation.ProcessInfo
consolemodule- use
Any?instead ofAnyfor argument values
- use
netmoduleConnectOptionsare nowCustomStringConvertible
connectandexpressmodules- use Swift 3.0.1 Preview 2 syntax on Linux
- use Swift 3.0.0 syntax on macOS
expressmodule- fixed
nilhandling inServerResponse.set(_,_)
- fixed
- new modules:
cryptomodule- only features the
md5hash andhexdigest, see README.md
- only features the
- new 3rd party modules:
CryptoSwift- just the parts required for MD5
Getting the stuff
Well, as usual, head over to
GitHub
and checkout the master branch or fetch the 0.5.0 tag.
Happy Nozing!
hh
