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

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


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

2021-10-27 16:10:07 The Swift Awaitening: Методичное пособие

Первая статья по базовому использованию async-await в Swift 5.5 от нашего админа и активного контрибьютера в Swift-опенсорс kirilltitov

https://kirilltitov.com/ru/blog/2021/async-await
235 viewsNerzh Woodcrust, edited  13:10
Открыть/Комментировать
2021-09-21 03:27:52 Господа и дамы, свершилось ! Swift 5.5

https://swift.org/blog/swift-5-5-released/
278 viewsNerzh Woodcrust, edited  00:27
Открыть/Комментировать
2021-09-10 03:02:16 Выпустили Swift 5.4.3 for Linux and Windows

Release Notes

Swift
disable some assertions to quickly workaround 'try?' bug [#38964]

swift-corelibs-foundation
Make constants immortal [#3065 1]
Implement copy() in ISO8601DateFormatter [#3061]
Fix BlockOperation with multiple execution blocks [#3053]
Fix memory leak in PropertyListSerialization [#3018]
Partially fix Decimal.ulp to return a valid representation [#3015 1]
Implement copy() in DateFormatter [#3011]
Fix temporary filename coda going above the maximum path length in some cases [#3006]

https://swift.org/download
346 viewsNerzh Woodcrust, 00:02
Открыть/Комментировать
2021-09-08 12:41:45 Structured concurrency принят и будет доступен в 5.5

Вчера команда языка наконец подвела итог всей полугодовой саги с пропозалом про structured concurrency (доступен по ссылке https://github.com/apple/swift-evolution/blob/main/proposals/0304-structured-concurrency.md). Пропозал, конечно, был принят.

Последняя итерация обсуждения была относительно спокойной, обсуждались отдельные маловажные детали, вроде именования функции Task.yield (её рекомендуется использовать в конце циклов длительных функций, чтобы не занимать весь тред надолго).

Пропозал довольно сильно отличается от своего оригинального вида. Так, например, из него в отдельные пропозалы были выделены:

1. Sendable типы — оригинально они назывались ConcurrencyValue (принято).
2. Continuation — создание async контекста из функций с замыканием (принято).
3. Async let — фьючеры на уровне синтаксиса (принято).
4. Custom executors — на чем исполняются куски асинхронных подпрограмм; по умолчанию это треды, но могут быть, скажем, и EventLoop из SwiftNIO или DispatchQueue из GCD (отложено).

Учет изменений названий и API не велся.

После всех изменений и правок пропозал регулирует следующие концепции:

1. Асинхронные программы — атрибут @main для структур или классов, требующий наличия статического асинхронного метода main, который будет точкой входа в программу с асинхронностью.
2. Task groups — создание произвольного количества асинхронных задач, ожидание их выполнения, группировка и возврат обработанного результата. Кто занимался жонглированием EventLoopFuture из НИО, знает о чем речь.
3. Создание асинхронной подзадачи с сохранением родительского контекста через let handle = Task { ... } или без него через let handle = Task.detached { ... }
4. Возможность отмены асинхронной задачи — никакой магии: предполагается, что задача сама внутри себя должна проверять, не отменена ли она (отмена выполняется через API из третьего пункта), и если да, то ей следует как можно скорее завершить работу.

Всё это официально станет доступно в версии языка 5.5, который выйдет в релиз вместе с macOS Monterey. Дата выхода операционной системы еще не назначена, но ожидается что сам выход или его анонс состоится 14 сентября, на анонсированном накануне ивенте Apple.

О других асинхронных фичах, выход которых состоится в 5.5, можно почитать в других материалах нашего канала.
241 viewsKirill Titov, 09:41
Открыть/Комментировать
2021-07-19 12:05:58 Дайджест пропозалов за середину июля

1. Пропозал про structured concurrency отправлен на еще один раунд ревью. Изменений немного, редакция оптимистично ожидает вердикта в конце месяца.
2. Создан (и уже турбопринят) пропозал про поддержку магическим типом Never протокола Identifiable. Это удобно: ранее этот же тип получил поддержку протокола Error, и таким образом можно делать вещи вроде Result, что означает, что этот результат никогда не войдет в состояние ошибки. Еще Never удобен для функций, из которых не подразумевается выход, например, где вызывается fatalError или exit.

https://github.com/apple/swift-evolution/blob/main/proposals/0319-never-identifiable.md
215 viewsKirill Titov, 09:05
Открыть/Комментировать
2021-07-02 14:10:48 Дайджест пропозалов

За последние пару дней были вынесены положительные решения пропозалам про task local values и глобальные акторы. Уточнено, что оба выйдут в продакшен в версии 5.5.

Пропозалы про structured concurrency и async let всё еще ожидают вердикта, официальные сроки обсуждения истекли 3 июня.

Тем временем, поддержки async/await в тестовом фреймворке XCTest как не было, так и нет. Сообщество в смятении.

https://github.com/apple/swift-evolution/blob/main/proposals/0311-task-locals.md
https://github.com/apple/swift-evolution/blob/main/proposals/0316-global-actors.md
https://github.com/apple/swift-evolution/blob/main/proposals/0304-structured-concurrency.md
https://github.com/apple/swift-evolution/blob/main/proposals/0317-async-let.md
285 viewsKirill Titov, 11:10
Открыть/Комментировать
2021-06-18 12:03:48 Эхо WWDC: Документация к concurrency

Завершилась ежегодная конференция WWDC, уже второй раз по очевидным причинам проходящая в онлайн-формате. Помимо традиционных пунктов повестки вроде новых версий операционных систем, на конференции широкой публике было официально представлено расширение языка Swift, содержащее фичи для удобной работы с асинхронностью и конкурентностью — синтаксис async/await, акторы, structured concurrency. Впрочем, постоянные читатели этого канала и чата при канале знали о прогрессе каждой из этих фич еще с самого анонса на официальном форуме девять месяцев назад.

Официальный анонс подтвердил выход всех законченных фич в версии 5.5. В преддверии её выхода Apple обновили официальную документацию языка соответствующим разделом, где можно ознакомиться со всем ожидаемым функционалом. Опробовать же его можно в девелоперской сборке 5.5 или снепшоте мейн-ветки.

Ожидается, что версия 5.5 выйдет одновременно с Xcode 13, который сейчас доступен в бета-версии. Сама же студия по традиции релизится ближе к выходу операционной системы, осенью. Так, выход Xcode 12 состоялся 16 сентября 2020 года.

https://docs.swift.org/swift-book/LanguageGuide/Concurrency.html
312 viewsKirill Titov, 09:03
Открыть/Комментировать
2021-05-05 11:34:30 Принят пропозал "Unlock Existencials for All Protocols"

Сегодня был принят пропозал, разрешающий использовать все протоколы в сигнатурах функций и значений.

Ранее при попытке напрямую использовать протокол с associated типами или требованиями по Self компилятор выдавал ошибку «protocol can only be used as a generic constraint because it has Self or associated type requirements» и предлагал использовать протокол как ограничение в дженерике. Теперь такого ограничения не будет.

Например, теперь можно будет сделать следующее:

let myCollection: Collection = Array([1, 2, 3])
let firstValue = myCollection.first // тип будет Any?

Почитать подробности пропозала можно по ссылке https://github.com/apple/swift-evolution/blob/main/proposals/0309-unlock-existential-types-for-all-protocols.md
673 viewsKirill Titov, edited  08:34
Открыть/Комментировать
2021-04-30 14:43:16 Принят пропозал про effectful read-only properties

Среди новостей, напрямую не относящихся к асинхронности, можно выделить принятый на днях пропозал, разрешающий помечать геттеры свойств как async и/или throws.

Таким образом теперь можно получить значение свойства структуры/класса/енума/актора через let value = try await foo.bar или let value = await foo["bar"]

Синтаксис определения такого свойства в протоколах и конкретных типах выглядит следующим образом:

protocol Fooable {
var bar: Int { get async throws }

subscript(_ string: String) -> Int { get async }
}

class Foo: Fooable {
// ...
var bar: Int {
get async throws {
// ...
}
}

subscript(_ string: String) -> Int {
get async {
// ...
}
}
}

Отдельно подчеркивается, что данный функционал распространяется только на геттеры. Сеттеры его пока не поддерживают и будут обсуждаться отдельно.

Подробности по ссылке https://github.com/apple/swift-evolution/blob/main/proposals/0310-effectful-readonly-properties.md
357 viewsKirill Titov, edited  11:43
Открыть/Комментировать
2021-04-30 14:34:32 Пропозал с акторами ПРИНЯТ (с модификациями) Этой ночью был официально принят пропозал, описывающий новый глобальный тип в типовой системе Свифта — акторы. Они позволяют надежно инкапсулировать свое состояние с помощью «почтового ящика» на все внешние операции.…
372 viewsKirill Titov, edited  11:34
Открыть/Комментировать