Language Updates
ABI 안정화 및 바이너리 호환성
새로운 피처
- Swift 라이브러리가 앞으로, macOS, iOS, tvOS, watchOS에 포함. 기존에는 앱에 포함되어 앱의 크기를 키웠음.
## Standard Library Updates
- String이 UTF-8 인코딩으로 다시 전환하여 퍼포먼스를 높임
- raw text를 지원하는 string literal 추가
- Result 와 SIMD 벡터 타입 추가
- String interpolation 확장
- Dictionary 와 Set의 퍼포먼스 향상
Swift Evolution
- SE-0200 Enhancing String Literals Delimiters to Support Raw Text
- SE-0211 Add Unicode Properties to Unicode.Scalar
- SE-0214 Renaming the DictionaryLiteral type to KeyValuePairs
- SE-0215 Conform Never to Equatable and Hashable
- SE-0218 Introduce compactMapValues to Dictionary
- SE-0221 Character Properties
- SE-0225 Adding isMultiple to BinaryInteger
- SE-0228 Fix ExpressibleByStringInterpolation
- SE-0229 SIMD Vectors
- SE-0232 Remove Some Customization Points from the Standard Library’s Collection Hierarchy
- SE-0233 Make Numeric Refine a new AdditiveArithmetic Protocol
- SE-0234 Remove Sequence.SubSequence
- SE-0235 Add Result to the Standard Library
- SE-0237 Introduce withContiguous{Mutable}StorageIfAvailable methods
- SE-0239 Add Codable conformance to Range types
- SE-0241 Deprecate String Index Encoded Offsets
## 그 외, 언어사양 및 컴파일러 업데이트
-
exclusive access to memory를 debug와 release 빌드에 기본 적용합니다.
-
Python, JavaScript, Ruby와 같은 동적 타입 언어와의 상호 처리를 개선하기 위한 동적 callable 타입을 지원합니다.
-
SE-0224 Support ‘less than’ operator in compilation conditions
## Package Manager
- Swift 5의 몇 가지 새로운 기능을 포함
- 의존성 미러링
- target 별 빌드 설정(좋다.)
- 배포 target 사용자화
- 코드 커버리지 데이터 생성
- swift run 명령어를 통해 실행파일 빌드 없이 라이브러리를 REPL로 import할 수 있는 기능
Swift Evolution
- SE-0219 Package Manager Dependency Mirroring
- SE-0236 Package Manager Platform Deployment Settings
- SE-0238 Package Manager Target Specific Build Settings
# Migrating to Swift 5
Swift 5는 Swift 4, 4.1, 4.2와 소스 호환됩니다.
Xcode는 항상 마이그레이션을 지원하지만, 손으로 하는것이 여러모로 좋습니다.
# Documentation [The Swift Programming Language](https://swift.org/blog/swift-5-released/) 문서가 업데이트 되었습니다. [Apple Books store](https://itunes.apple.com/us/book/the-swift-programming-language/id881256329?mt=11)에서도 무료로 받을 수 있습니다.
Platforms
Linux
공식 바이너리는 Ubuntu 18.04, Ubuntu 16.04, Ubuntu 14.04에서 사용 가능합니다.
## Apple (Xcode)
… 써야함?
# Sources
Swift 5.0 브랜치를 따라가는 repository
- swift
- swift-clang
- swift-clang-tools-extra
- swift-cmark
- swift-corelibs-foundation
- swift-corelibs-libdispatch
- swift-corelibs-xctest
- swift-libcxx
- swift-llbuild
- swift-lldb
- swift-llvm
- swift-package-manager
- swift-stress-tester
- swift-syntax
- swift-xcode-playground-support
- swift-compiler-rt
- swift-integration-tests
댓글