Swift3 Linux vc Mac DispatchQueue

В соответствии с swift.org/migration -guide, диспетчерские и связанные функции имеют отличный новый быстрый интерфейс (например, dispatch_asyncDispatchQueue.async). Также были добавлены другие типы фундамента, такие как Data и Date, а не NSData и NSDate.

Однако, в версии с открытым исходным кодом swift3 (предварительный просмотр разработчика 1) на linux, ubuntu15.10, компилятор отклоняет все эти изменения. Фактически, глядя на версию с открытым исходным кодом быстрых и быстрых-corelib на github, я фактически не вижу ни одного из этих изменений. Поскольку он будет компилироваться на предварительном просмотре разработчиков XCode, это заставило меня поверить: я делаю что-то не так в Linux, или эти изменения были сделаны в ветке Apple, а не в ветке с открытым исходным кодом. Может ли кто-нибудь проверить это, и если это так, и если да, то как мы узнаем, какие изменения произойдут в ветке Apple против ветки с открытым исходным кодом?

Ответ 1

Благодаря Брэду Ларсону для поиска Foundation и Dispatch накладывается на источник. Согласно swift.org:

Наложения SDK: для платформ Apple, наложения SDK (внедренные в stdlib/public/SDK) обеспечивают Swift-специфические дополнения и изменения существующих структур Objective-C для улучшения их отображение в Свифт. В частности, наложение фонда обеспечивает дополнительная поддержка для взаимодействия с кодом Objective-C.

tl; dr все в этих папках - это только платформы Apple. Все еще не уверены, почему они ограничили оверлей отправки на Apple Platforms, поскольку libdispatch также является открытым исходным кодом и нацелен на Linux, но это отвечает на мой первоначальный вопрос.

Изменить: удалось с помощью быстрых списков рассылки подтвердить, что накладки отправки имеют определенную зависимость от времени выполнения Objective-C. Есть работа по их внедрению для платформ, отличных от Дарвина, но никаких гарантий по срокам.

Ответ 2

Начиная с версии Swift 3.0 версия GCD доступна в Linux с простым import Dispatch, что немного запутанно, поскольку оно не требуется на iOS/macOS, где модуль Dispatch импортируется по умолчанию.

Ответ 3

Просмотрите страницу Swift 3 Evolution Github. Они перечисляют все предлагаемые изменения на языке и разделяют их теми, которые были реализованы, и теми, которые этого не сделали. Предложение SE-0088: Модернизация libdispatch для названия Swift 3 находится в списке "еще не реализована", как и многие другие изменения.

Что касается данных и даты, я не могу сказать, так как я считаю, что это часть предстоящих основных библиотек, и я еще не смог подробно рассмотреть эти детали. Возможно, вы можете проверить страницу Swift Core-Libs Github, хотя ссылки на страницы статуса работают над NSData и NSDate, не упоминается о новых типы данных.