티스토리 뷰

Swift

Swift 5.0 Release Process

Zedd0202 2019. 1. 4. 15:21
반응형


안녕하세요 :) Zedd입니다.

Swift 5가......올해에 나올텐데요, Swift 5.0 Release Process가 꽤 오래전에 나왔었는데..지금 봄 ㅋ_ㅋ...

Swift 5.0릴리즈는

Expected release date: Early 2019

라고 하네요. 



Swift 5.0 Release Process



Motivation and Goals

Swift 5.0의 기본 목표는 언어가 ABI안정성을 달성하는 것입니다. 이렇게하면, 실행파일 및 라이브러리에 의해 링크될 수 있는 OS공급업체에서 안정적인 Swift런타임을 배포 할 수 있습니다.

ABI안정성과 관련하여 모듈 안전성(module stability)도 주요 초점이 될 것입니다. 이것은 준비상태에 따라 Swift 5.0 릴리즈 또는 후속 5.x 릴리즈에 올라갈 것입니다. 

Binary Compatibility

Swift 5.0은 Swift의 이전 출시와 양립 할 수 없습니다. (Swift 5.0 is not binary compatible with earlier Swift releases.)

바이너리 호환성은 다른 Swift컴파일러에 의해 컴파일 된 Swift코드가 런타임 수준에서 함께 링크되고 상호운용되도록 합니다. (말이 왤케 어려워..)

그러나 향후 Swift릴리즈는 Swift 5와 binary compatible이 가능합니다. 


Source Compatibility

Swift 4.2와 마찬가지로, Swift 4.2컴파일러로 빌드 된 소스의 대부분은 Swift 5.0컴파일러로 컴파일해야합니다. (그럼 하지 안하나??)
그러나 Swift 3 호환모드(compatibility mode)는 Swift 5컴파일러에서 지원되지 않습니다. 
Swift 4.2는 Swift 3모드를 지원하는 Swift의 마지막 릴리즈입니다.
미래의 소스와 binary stability(바이너리 안전성)의 기초가 될 Swift 3 다음의 릴리즈에는 언어의 표면(surface)과 구현의 내부 모두에 중요한 변경사항이 있습니다.


Philosophy on Taking Changes into Swift 5.0

"Philosophy" 크..

Swift 5.0의 모든 언어 및 API변경을 Swift Evolution과정을 거치게 되며, 변경사항의 범위가 문서화됩니다.

다른 변경사항(버그 수정, 진단 개선, SourceKit 인터페이스 개선 등)은 위험(risk) 및 영향(impact)을 기반으로 허용됩니다.

저위험도(row-risk) 테스트 조정은 릴리즈 자격이 충족할 경우, 릴리즈 브랜치 후반에 받아들여집니다.

릴리즈가 수렴(converges)함에 따라, 허용되는 변경 사항에 대한 기준이 점차 엄격해집니다.



Swift.org에 Swift 5.0 Release Process글에서 제가 알고싶은거만 가져와서 번역한거구요. 다른 여러가지 것들이 더 있으니 들어가셔서 한번 보세엽


이번엔 Swift Evolution에 있는 README를 봅시다.

ABI안정성에 대한 이야기가 구구절절 나오는데..보니까 저 위에서 이야기한게 딱 핵심같아서 그냥 놔둡니다.


Primary Focus: ABI Stability

보고싶은 분들은 위 링크 클릭 :)


Other Improvements

  • String ergonomics. String을 사용하기 쉽고, 성능을 높히기 위해 String Manifesto에 설명된 작업을 더 많이 완료할 것입니다. 이 작업에는 언어 및 표준 라이브러리에 새로운 텍스트 처리 능력 추가 및 정규 표현식에 대한 언어 수준 지원이 포함될 것입니다. 


  • 기존 표준 라이브러리 기능(facilities) 향상. 기존 라이브러리 기능에 대한 기타 작은 추가사항을 고려할 예정이지만, 릴리즈랑 별 상관없는 중요한 기능은 공개 안할거얌


  • Foundation improvements. Swift에서 Cocoa SDK가 원활하게 작동하도록 목표를 설정하기 위해 Foundation API에 대한 일부 개선 된 기능을 제안 할 것으로 예상됩니다.


  • Syntactic additions. 구문 변화는 언어의 표현력을 증가시키지는 않지만, 복잡성을 증가시킵니다. 결과적으로 이러한 변화는 매우 잘 동기부여가 되어야하며, 추가조사가 필요합니다. 우리는 긍정적인 영향이 얼마나 광범위하게 퍼지는지 구체적인 정보를 제안서(proposals)에 포함시킬것으로 기대합니다.


  • 새로운 동시성 모델을 위한 토대 마련. 특히 ABI안정성에 필요한 새로운 동시성 모델을 위한 토대를 마련 할 것입니다. 그러나 이러한 모델을 완성하는 것은 Swift 5의 목표는 아닙니다. 주요 초점 영역은 비동기 API를 만들고 사용하기 위한 언어 지원의 설계와 callback-heavy code에 의해 발생되는 문제를 처리하는 것입니다. 

(어머!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)

ㅇ머어머어머엄어머엄ㅁ어멈ㅁㅁ어엄ㅁ머머

어머 completion hell 안만들게 해줄거야 너네가?? RxSwift처럼 만들어준다는건가?...잘 이해가 안감...

근데 일단 콜백지옥을 안만들어준다는게 어디..

Swift짱 애플짱 진짜 갓-애플 팀쿡 네 하루에 1달러면 아이폰 살 수 있죠 ㅇ그럼요 

하지만~~언제 나올지 모른다는거 ㅋ-ㅋ...



Source Stability

Swift4와 마찬가지로, Swift 5 컴파일러는 이전 버전의 Swift를 사용하여 작성 된 소스코드가 Swift 5 컴파일러로 컴파일 되도록 Source Stability모드를 제공합니다.
Swift 5 컴파일러는 Swift 4에서 작성 된 코드를 지원 할 것이지만, Swift 3에서 작성된 코드도 지원 할 수 있도록 확장 될 수 있을지도 모릅니다. 후자에 대한 최종 결정은 2018년 최에 이루어 질 것입니다.

Swift 5의 소스 변경사항은 다음 지침에 따라, Swift 4보다 훨씬 높은 기준을 가질 것입니다. 
- 현재 syntax / API는 사용자에게 문제를 일으키도록 표시되어야 한다.
- 새로운 syntax /API는 확실히 더 낫고, 기존 Swift구문과 충돌하지 않아야 한다.
- 기존 코드에 대해 합리적으로 자동화된 마이그레이션 경로가 있어야 한다.

Swift 4와는 달리, Swift 5에서는 "stage 1", "stage 2"단계가 없습니다. 

아 이 밑에 내용은. 위에 있는 Philosophy on Taking Changes into Swift 5.0를 그냥 더 정확하게 말한거네요.

proposal이 작성되고 풀리퀘 내고..이게 검토 되고 이런 과정들이 어떻게 진행되는지 말해주는데..딱히 몰라도 될 것 같습니다. 애초에 일반적인 proposal은 2018년 3월 1일까지만 받고 그 이후로는 좀더 strict하게 받는다니까..지나도 한참 지났네요. 


아직 제가 ABI stability에 대한 지식이 정말 부족한 것 같네요.

다음 글은 ABI stability로..





반응형

'Swift' 카테고리의 다른 글

Swift 5.0 변경사항  (8) 2019.02.17
Swift Snapshot써보기  (1) 2019.01.07
Swift ) Swift Sorting Algorithm  (4) 2018.12.26
Swift ) ContiguousArray / ArraySlice  (0) 2018.09.28
Swift ) The Swift Array Design  (0) 2018.09.27