company_banner

Apple открыла исходные тексты Swift System и выложила Swift 5.3



    Компания Apple открыла исходные тексты библиотеки Swift System. Она предоставляет идиоматический набор программных интерфейсов к системным вызовам и низкоуровневым типам данных. Изначально Swift System поддерживал только системные вызовы платформ Apple, но сейчас портирован и для Linux. Swift System написан на языке Swift, компания распространяет его под лицензией Apache 2.0.

    Swift System удобна тем, что предоставляет единую точку доступа ко всем системным интерфейсам. Эту возможность можно использовать на всех поддерживаемых платформах, без специфических обвязок на C в Swift-программах. Положительный момент в том, что Swift System не унифицирует системные вызовы, а предоставляет отдельное подмножество API для каждой поддерживаемой платформы, с учетом ее поведения и точным отражением низкоуровневых интерфейсов ОС.

    Ранее компания заявила, что ключевая цель создания Swift System — упрощение разработки кросс-платформенных библиотек и приложений, включая SwiftNIO и SwiftPM. Swift System не отменяет при этом необходимость ветвления на основе "#if os()" при обращении к низкоуровневым примитивам, зато упрощает эту работу и делает ее более безопасной.

    Еще одна новость — выход Swift 5.3. Официальные сборки готовы для таких ОС, как Linux (Ubuntu 16.04/18.04/20.04, СentOS 7/8), macOS (Xcode 12) и Windows 10. Исходные тексты распространяются под лицензией Apache 2.0.

    В новом выпуске добавлена начальная поддержка платформы Windows, плюс поставка инструментария для сборки и запуска Swift-приложений в Windows 10. Разработчики продолжают совершенствовать функциональность языка. В числе прочих новинок стоит отметить появление инициализатора для типа String, расширение применение выражения «where», изменение семантики didSet, поддержки указания нескольких шаблонов в выражениях Catch, добавление типа Float16, атомарные операции с памятью.

    Важный момент — снижение размера результирующих приложений. Так, если в Swift 4 размер уже готовой программы превышал аналог на Objective-C в 2,3 раза, то сейчас этот разрыв сокращен до 1,5 раза. В новом выпуске еще и ускорена инкрементальная сборка и сборка кода с большим числом свойств и функций, которые импортируются из других библиотек. Расширены свойства диагностики в компиляторе и качество выводимых сообщений об ошибках. В пакетном менеджере еще и реализована возможность включения в пакеты дополнительных ресурсов, которые необходимы во время исполнения. Например, изображения. В пакетном менеджере появилась поддержка компонентов для локализации с возможностью определения условных зависимостей.

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

    Реализация Swift предусматривает задействование технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-приложения компилируются в машинный код, который выполняется в тестах Apple на 30% быстрее кода на Objective-C. Так, вместо сборщика мусора в Swift используются средства подсчета ссылок на объекты.

    В поставку входит пакетный менеджер Swift Package Manager, который предоставляет средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

    Selectel
    ИТ-инфраструктура для бизнеса

    Комментарии 19

      +8
      Спасибо за статью!
      Для обеспечения высокой производительности Swift-приложения компилируются в машинный код, который выполняется в тестах Apple на 30% быстрее кода на Objective-C. Так, вместо сборщика мусора в Swift используются средства подсчета ссылок на объекты.

      Читается так, будто в Objective-C используется сборщик мусора. Не используется. Точнее, он был в целой одной версии OS X много лет назад.
        +6

        https://www.opennet.ru/opennews/art.shtml?num=53787


        При перепечатке указание ссылки на opennet.ru обязательно
          0
          Глупый вопрос: а как пользоваться Swift под Windows?
          Еще вчера скачал дистрибутив, поставил… и что дальше?
          При попытке собрать какое-то примитивное «hello world» из командной строки выдает какой-то мусор и ошибки.
          ←[1m<unknown>:0: ←[0m←[0;1;31merror: ←[0m←[1mcould not load the swift standard l
          ibrary
          ←[0m

          В режиме REPL (как интерпретируемые языки) тоже не работает.
          Может есть какой-то плагин к Студии (это было бы идеальным вариантом)?
            +1
            Надо заходить на примеры демо приложений, там идет сборка через cmake, ninja. У меня только так получилось запустить что-то работающее. В скором будущем обещают сделать swift build, чтобы не костылить через cmake и ninja.
            +3

            Прямо по канону:"Так же чтобы в игре могли не только убить но и отрубить руку и если пользователя не вылечат то он умрет, так же выколоть глаз но пользователь может не умереть а просто пол экрана не видеть, или достать или купить протез, если ногу тоже либо умреш либо будеш ползать либо на коляске котаться, или самое хорошее… поставить протез. Сохранятся можно...


            P.S. Я джва года хочу такую игру."

              0

              Так была уже такая игра — BioForge. Где повреждения конечностей были сделаны так, вы описали.

                +1

                А грабить корованы там можно? А домики набигают? =)

                  0

                  А ещё есть Kenshi, практически полностью подходит под описание.

                  0

                  Есть такая игра, армия называется.

                  0
                  Я не понимаю, зачем каждую осень надо выпускать новую версию. В 4.1 уже было всего более чем достаточно
                    +2

                    А за что тогда зарплату платить?

                      +1

                      Ну, кому более чем достаточно, а кому, к примеру, module stability только в 5.1 завезли. А в 4.1 даже ABI stability не было, её завезли в 5.0. Вполне может быть, что каких-то фич, которые кому-то нужны, сейчас нет.

                      –1
                      Положительный момент в том, что Swift System не унифицирует системные вызовы…
                      … вместо сборщика мусора в Swift используются средства подсчета ссылок на объекты.

                      А недостатки мы в преимущества определим. И в следующей версии обязательно сломаем обратную совместимость.
                        0

                        Swift приложения в Windows? Громко.
                        Есть люди у которых что-то заработало серьёзнее чем hello world?

                          0
                          Кто в теме, на интеле можно будет собирать апы под эпл силикон?
                            0

                            да, уже можно.

                              0
                              Благодарю за ответ!
                                0
                                надо добавить примечание что на эпловском интеле) никто не даст из под винды собирать иос бинари
                                  0
                                  10 лет уже на маке и в мыслях венды не было))) Просто обновился меньше года назад, а тут такая подлянка с этим переходом. Хочется еще хоть года 3-4 без ограничений поработать.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое