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
Process
is nowCommandLine
@noreturn
is now-> Never
.dynamicType
is nowtype(of:)
- casts are different,
withMemoryRebound(to:)
and companions @escaping
works differentlyAny
vsAny?
vsAnyObject
- first keyword argument
XYZLiteralConvertible
is nowExpressibleByXYZ
OutputStream
is nowTextOutputStream
- etc.
streams
module- bugfix(TBD):
read()
andpush
can interleave
- bugfix(TBD):
fs
module- FSWatcher not available anymore on Linux
process
module- drop Linux hack, Linux now has Foundation.ProcessInfo
console
module- use
Any?
instead ofAny
for argument values
- use
net
moduleConnectOptions
are nowCustomStringConvertible
connect
andexpress
modules- use Swift 3.0.1 Preview 2 syntax on Linux
- use Swift 3.0.0 syntax on macOS
express
module- fixed
nil
handling inServerResponse.set(_,_)
- fixed
- new modules:
crypto
module- only features the
md5
hash andhex
digest, 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