Получи случайную криптовалюту за регистрацию!

Server Side Swift News

Логотип телеграм канала @sssnews — Server Side Swift News S
Логотип телеграм канала @sssnews — Server Side Swift News
Адрес канала: @sssnews
Категории: Технологии
Язык: Русский
Количество подписчиков: 65
Описание канала:

Канал от группы https://t.me/server_side_swift
Новости и релизы из мира Swift и Server-Side Swift

Рейтинги и Отзывы

4.50

2 отзыва

Оценить канал sssnews и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 2

2021-04-26 21:58:07 Состоялся релиз Swift 5.4

Apple официально анонсировали выход версии 5.4 своего языка. Он уже доступен для скачивания с официального сайта или через AppStore в виде обновления Xcode 12.5.

Среди основных обновлений можно выделить:

1. Множественные вариадические аргументы в функциях (раньше язык позволял сделать только один такой аргумент: func foo(_ arg: Int...)). Подробнее можно почитать в пропозале по ссылке: https://github.com/apple/swift-evolution/blob/main/proposals/0284-multiple-variadic-parameters.md
2. Адекватную поддержку последовательных вызовов методов и свойств на объекте. Это можно было бы, скорее, назвать фиксом, так как со стороны это больше похоже на проблему компилятора. Подробнее по ссылке: https://github.com/apple/swift-evolution/blob/main/proposals/0287-implicit-member-chains.md
3. Окончательная версия функционала function builders теперь называется result builders. Изменений много, но все они скорее уточняющие, нежели кардинальные. Подробнее по ссылке: https://github.com/apple/swift-evolution/blob/main/proposals/0289-result-builders.md
4. Перегрузка локальных функций (оказывается, это раньше не работало).
5. Property wrappers для локальных переменных.

Кроме того, теперь не рекомендуется использовать слово await в качестве названия функции или переменной: будет показано предупреждение. Это является частью подготовки к релизу будущей версии языка с поддержкой async/await.

Также заявлен ряд улучшений и ускорений как компилятора, так и рантайма.

Обновился до версии 5.4 и Swift Package Manager (SPM). Вкратце опишем изменения:

1. Теперь в executable-таргетах можно использовать атрибут @main на типах, которые являются точками входа для программы. Подробнее по ссылке: https://github.com/apple/swift-evolution/blob/main/proposals/0294-package-executable-targets.md
2. Поддержка Windows.
3. Оптимизация обработки зависимостей, таким образом уменьшится потребление трафика и ускорится обработка зависимостей.
4. Автоматическое обнаружение тестов на всех платформах: LinuxMain.swift больше не нужен.
5. Более адекватные сообщения об ошибках в Package.swift и процессе резолва зависимостей.

И еще больше подробностей об обновлении по ссылке: https://swift.org/blog/swift-5-4-released/
215 viewsKirill Titov, edited  18:58
Открыть/Комментировать
2021-04-24 14:53:31 Пропозал с акторами ПРИНЯТ (с модификациями)

Этой ночью был официально принят пропозал, описывающий новый глобальный тип в типовой системе Свифта — акторы. Они позволяют надежно инкапсулировать свое состояние с помощью «почтового ящика» на все внешние операции. Проще говоря, изнутри все методы, которым необязательно быть асинхронными, выполняются синхронно, но снаружи они требуют ключевого слова await (то есть снаружи сигнатура автоматически становится func foo() async.

Пропозал очень долго был в обсуждении: четыре итерации питча и две итерации пропозала, сильно зашедшие за установленные временные рамки. Но наконец почти все ключевые вопросы улажены и пропозал был принят. Открытыми остался ряд вопросов, которые будут обсуждены в ближайшее время в рамках отдельных пропозалов. Почитать о них можно по ссылке https://forums.swift.org/t/accepted-with-modification-se-0306-actors/47662

Пока неизвестно, в какой версии языка акторы будут доступны. Текущую имплементацию можно попробовать в nightly сборках языка (доступны по ссылке https://swift.org/download/#snapshots).
352 viewsKirill Titov, 11:53
Открыть/Комментировать
2021-04-06 02:00:29 Новый пакет swift-collections в репозитории apple

https://github.com/apple/swift-collections
308 viewsNerzh Woodcrust, 23:00
Открыть/Комментировать
2021-03-16 02:51:44 Теперь реализация BSON на чистом свифте

https://github.com/mongodb/swift-bson/releases/tag/v3.0.0
306 viewsNerzh Woodcrust, 23:51
Открыть/Комментировать
2021-03-03 13:49:13 (продолжение предыдущего поста)

Открытые вопросы:

1. Дедлайны выполнения задач в экзекьюторах: довольно частой задачей в конкуррент-программировании является выполнение какой-то функции через определенное количество времени или по таймеру, но нынешний функционал этого не предусматривает (например, блокирующий sleep использовать максимально не рекомендуется).
2. XCTest: на данный момент не представляется возможным эффективно тестировать асинхронные функции (помеченные через async). Возможно создание хелпера для кое-какого тестирования такого кода в условиях синхронных тестовых функций, но поскольку свифт открыто запрещает конвертировать асинхронные функции в синхронные с возвратом значения, этот хелпер довольно ограниченный. Можно посмотреть гист по ссылке (https://trtq.ru/b/ru).
3. Будущее SwiftNIO. В контексте всей инициативы concurrency не вполне понятно будущее этого фреймворка. Руководители проекта Кори Бенфилд (Lukasa) и Йоханнес Вейс обрисовали возможные пути развития СвифтНИО в контексте async/await, акторов и кастомных экзекьюторов (которые, очевидно, являются наиболее важной частью для продолжения жизни фреймворка) (https://trtq.ru/b/rv)
458 viewsKirill Titov, edited  10:49
Открыть/Комментировать
2021-03-03 13:49:13 Дайджест concurrency

Расскажем о текущем состоянии всех компонентов асинхронности и конкурентности, над которыми крайне упорно работают команда Свифта и комьюнити в последние месяцы.

Сперва пройдемся по тому, что уже есть, и меняться не будет (либо незначительно):

1. Предложение №296 (https://trtq.ru/b/rg), с которого всё началось, и которое описывает языковые конструкции async/await, полностью утверждено и появится в продакшене в следующей версии языка. Правда, не уточняется, в какой: минорной (5.4) или мажорной (6.0).
2. Предложение №297 (https://trtq.ru/b/rh) про поддержку async/await в коде Objective-C принят. Известно, что все компоненты Foundation с completion handlers будут портированы на async/await, но в обход процедуры пропозалов, поскольку эта часть не регламентируется процессом пропозалов напрямую.
3. Предложение №298 (https://trtq.ru/b/rj) про AsyncSequence принят.

Теперь о пропозалах, находящихся в стадии активного обсуждения:

1. Предложение №300 (https://trtq.ru/b/rk) про создание асинхронных функций из синхронных (у которых есть completion handler) находится в третьей итерации активного обсуждения, которая закончится девятого марта. Живой пример использования этого инструмента можно подсмотреть по ссылке (https://trtq.ru/b/rm).
2. Предложение №302 (https://trtq.ru/b/rn) про конкурентно-безопасные типы (протокол Sendable, ранее назывался ConcurrentValue) находится в четвертой итерации активного обсуждения, которая закончится восьмого марта.
3. Предложение №304 (https://trtq.ru/b/rp) про структурированную конкурентность (structured concurrency) (пересказывать содержание долго, проще почитать по ссылке) начнет первую итерацию активного обсуждения четвертого марта и продлится она до шестнадцатого марта.

NB: всё вышеперечисленное уже доступно (на разной стадии готовности) в main ветке репозитория языка. Можно либо сделать сборку самому, либо скачать официальный снепшот по ссылке https://swift.org/download/#snapshots.

И наконец, пропозалы, находящиеся на стадии питча, то есть предварительного обсуждения и формирования официального пропозала:

1. Гвоздь сезона: акторы! Пошла четвертая итерация питча пропозала этого функционала. Ознакомиться с проектом пропозала можно тут по ссылке (https://trtq.ru/b/rq), а само обсуждение происходит на форуме по ссылке (https://trtq.ru/b/rs). Ранняя реализация акторов присутствует в мейн-ветке, можно пощупать.
2. async let — некая форма фьючеров (или промисов из JS), т. е. значение будет присвоено однажды, и когда оно потребуется, нужно будет указать перед свойством await. Звучит сложнее, чем на самом деле. Пропозал отпочковался от оригинально очень большого пропозала structured concurrency (см. выше). Проект пропозала с примерами по ссылке (https://trtq.ru/b/rr).
3. Custom executors (https://trtq.ru/b/rt). Все асинхронные функции делятся на синхронные куски функций (partial tasks). Их необходимо как-то организованно выполнять. По умолчанию операционная система будет предоставлять два дефолтных экзекьютора (программистам даже не нужно переживать по этому поводу, всё автоматично и прозрачно) — для последовательного и параллельного выполнения задач, плюс при каждом акторе будет создаваться индивидуальный экзекьютор для сериализации его работы (подробнее читайте в питче пропозала акторов). В макоси, например, экзекьюторы будут построены на GCD, а в линуксе и винде — на местных технологиях (например, pthread и processthreadsapi). Но в некоторых случаях есть необходимость подменить стандартные экзекьюторы кастомными. Например, это актуально для серверных приложений на SwiftNIO, ведь EventLoop это ни что иное, как экзекьютор. Именно с этой целью и создается этот пропозал, формализующий несколько протоколов и структур, позволяющих создавать те самые кастомные экзекьюторы для всего рантайма и отдельных акторов. Питч находится на довольно ранней стадии.
301 viewsKirill Titov, edited  10:49
Открыть/Комментировать
2021-02-22 19:38:35 Критический багфикс в Vapor 4.40.1

Если кто юзает Swift Metrics, то атакующий может вам устроить DoS на ваших счетчиках и таймерах.

https://github.com/vapor/vapor/security/advisories/GHSA-gcj9-jj38-hwmc
241 viewsiMike, 16:38
Открыть/Комментировать
2021-02-06 07:21:57 Вышел релиз GRPC-SWIFT 1.0.0

Напомню, что первая альфа версия gRPC Swift 1.0.0-alpha.1 была выпущена 21 июня 2019. С тех пор многие ждут стабильный релиз и вот спустя почти 2 года свершилось чудо.

https://github.com/grpc/grpc-swift/releases/tag/1.0.0
269 viewsNerzh Woodcrust, 04:21
Открыть/Комментировать
2020-11-20 01:20:28 Состоялся релиз SwiftNIO SSH

Apple выпустила опенсорсный пакет SwiftNIO SSH для работы с, непосредственно, протоколом SSH.

По заявлению авторов, пакет не является готовым решением для создания клиентов или серверов SSH, но скорее представляет собой набор инструментов для построения как клиентов, так и серверов.

https://swift.org/blog/swiftnio-ssh/
318 viewsKirill Titov, edited  22:20
Открыть/Комментировать
2020-11-12 16:17:06 Состоялся релиз Leaf 4

https://github.com/vapor/leaf/releases/tag/4.0.0
Состоит отметить, что он не включает в себя новую версию Leaf Tau, она будет доступна в отдельной ветке https://github.com/tdotclare/leaf/tree/tau
Таким образом в бете остается только Redis.
284 viewsSergey, edited  13:17
Открыть/Комментировать