The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Apple выпустил язык программирования Swift 5.3 и открыл код библиотеки Swift System

26.09.2020 08:47

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

Swift System предоставляет единую точку доступа к системным интерфейсам, которую можно использовать на всех поддерживаемых платформах без применения в 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 наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C.

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


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Компания Apple представила язык программирования Swift 5.2
  3. OpenNews: Компания Apple представила язык программирования Swift 5
  4. OpenNews: Создатель LLVM и Swift уходит из компании Apple
  5. OpenNews: В язык Swift добавлена начальная поддержка платформы Android
  6. OpenNews: Компания Apple представила язык программирования Swift, основанный на LLVM
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53787-swift
Ключевые слова: swift, lib
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (90) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 09:17, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Я в своё время писал на Objective C (очень приятный язык с офигительнейшей документацией), но уже тогда было ясно что то, что писалось для Эппл, что используется в Эппл, только в Эппл и будет использовано.
    Неужели кто-то использует Swift или ObjC вне Эппл-инфраструктуры?
     
     
  • 2.2, 1030гор (?), 09:23, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Любой язык бесполезен без библиотек, если Apple сделает Swift кроссплатформенной платформой (извиняюсь за тафтологию), то он будет использоваться.
     
     
  • 3.3, A.Stahl (ok), 09:27, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ObjC совместим с С. Т.е. любая Си-либа слинкуется без лишних телодвижений. Вроде бы :)


     
     
  • 4.6, 1030гор (?), 10:00, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, только это и будет в чистом виде С, т.к. нужна хотя бы стандартная библиотека, чтоб использовать полноценно ObjC. Есть, конечно, ее гнутый суррогат, но это все для любителей острых ощущений, а не тех, кто хочет реализовывать свои идеи.
     
  • 2.4, Аноним (4), 09:50, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >очень приятный язык

    Бред.
    мими гнустепник

     
     
  • 3.5, Аноним (4), 09:50, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    мимо*
     
  • 2.8, Аноним (8), 10:22, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Неужели кто-то использует Swift или ObjC вне Эппл-инфраструктуры?

    Есть те, кто пишут под iOS сидя на Линухах. Кроме того, Apple имеет программы поиска уязвимостей, и без открытого кода это организовать сложнее

     
     
  • 3.9, A.Stahl (ok), 10:24, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >Есть те, кто пишут под iOS сидя на Линухах.

    Это возможно? Я имею в виду не теоретическую, а практическую рациональную возможноть...

     
     
  • 4.41, коржик (?), 15:28, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    нет, это невозможно.

    для сборки всё равно мак нужен. Для вёрстки икскод нужен. Плюс проблемы с сертификатами. Знаю по большому опыту xamarin разработки.

    В этом плане меня радует положение вещей в андроиде. Скачал андроид студию - и всё, к разработке готов

     
  • 4.54, Anonym_1914 (?), 17:00, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можно, но на практике это делать чревато, ибо Apple запрещает использовать UIKit вне macOS.

    А так, насколько помню, UIKit библиотеки можно найти в пользовательском репозитории Арча.

     
     
  • 5.56, Lex (??), 17:22, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как дела с отладкой и тестированием ?
     
  • 3.20, Аноним (20), 11:36, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем ?
    https://www.apple.com/ru/swift/
    https://developer.apple.com/xcode/
     
  • 3.23, proninyaroslav (ok), 11:39, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >Есть те, кто пишут под iOS сидя на Линухах

    Каким образом они пишут, когда Xcode доступен только для макос? Без этого можно собрать только CLI-утилиту, не больше.

     
     
  • 4.83, Аноним (83), 21:08, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    VMware Workstation, KVM+Clover,  DarlongHQ
     
  • 4.84, Аноним (83), 21:08, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    DarlingHQ
     
  • 2.12, Ю.Т. (?), 10:56, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Неужели кто-то использует Swift или ObjC вне Эппл-инфраструктуры?

    GNUStep?

     
     
  • 3.90, IRASoldier_registered (ok), 20:26, 28/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И где он теперь? Ну, кроме, может быть, компов нескольких фанатов? Кроссплатформенный софт на этой основе, не говоря уже о когда-то имевших место задумках Sony или хотя бы Frugalware Linux и DE Etoile - где это всё? :-)

     
  • 2.22, proninyaroslav (ok), 11:38, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На самом деле очень печально что Objective-C стал "актёром одной роли", хотя мог бы стать сильным конкурентом C++.
     
     
  • 3.68, Ключ (?), 04:35, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    С C++ можно конкурировать только по степени упоротости, даже раст не дотягивает до фимозности крестов
     
     
  • 4.71, proninyaroslav (ok), 10:55, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну плюсы не всегда такими были.
     
     
  • 5.73, Gogi (??), 13:11, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Всегда.
     
  • 2.58, Урри (?), 18:00, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Хуже objC только JavaScript.
    Начиная с совершенно идиотской объектной модели и заканчивая не менее дурацким синтаксисом +[] -[].
     
  • 2.67, Animal (??), 01:27, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В не эппл имеет смысл юзать компилятор для сборки. А на свифте писать костыли для нужд сборки. На ум больше сценариев использования не приходит. Я не иос/мак разраб и никогда им не был. Не знаю как это "добро" можно еще применить.
     
  • 2.70, Аноним (70), 08:20, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня при сборке мира в Gentoo в BDEPEND тянется Swift и им что-то компилируется.

    equery d swift - даст ответ что нуждается в Swift у вашей системе.

     

  • 1.7, Аноним (7), 10:20, 26/09/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –16 +/
     
     
  • 2.11, Murk (?), 10:52, 26/09/2020 Скрыто модератором
  • +12 +/
     

  • 1.10, Аноним (10), 10:51, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Swift также предлагает множество современных методов программирования, таких как замыкания, <…> лямбда-выражения

    Скажите мне, пожалуйста, что это ошибка автора новости, а не гениальное изобретение авторов языка.

     
     
  • 2.26, Ordu (ok), 12:19, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Где ты видишь ошибку?
     
     
  • 3.50, Аноним (10), 16:30, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не вижу, я надеюсь, что это ошибка. Так ошибка или нет? По запросу "swift lambda" вылезает только какая-то AWS Lambda.
     
     
  • 4.61, Урри (?), 21:22, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Загугли "swift closures".

    Они даже здесь не смогли обойтись без желания вендорлока - яблочный программист должен уметь программировать только под яблоки. Поэтому даже терминологию надо искалечить, чтобы не дай боже не получилось адекватно общаться с чужими программерами.

    Все по заветам любых религиозных сект.

     
     
  • 5.62, Аноним (62), 21:58, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Загуглил, читаю.

    https://docs.swift.org/swift-book/LanguageGuide/Closures.html

    Вроде замыкания как замыкания. С escaping выглядит странно, но там объясняется, почему это надо (для рефкаунтов).

    Что не так-то? Свифт в первый раз в жизни вижу если что.

     
  • 5.63, Аноним (10), 22:39, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Загугли "swift closures".

    Спасибо, я до этого и сам додумался. Вопрос в том, действительно ли помимо этих замыканий в языке есть какие-то ещё лямбды?

     
  • 5.86, vladd (??), 16:08, 28/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не любая лямбда является замыканием! https://stackoverflow.com/questions/220658/what-is-the-difference-between-a-cl
     
  • 4.82, Ordu (ok), 20:37, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Так ошибка или нет?

    Что за ошибка? Грамматически всё правильно. Или ты не о грамматике?

     
  • 2.74, Gogi (??), 13:14, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это "ламерьё" набегает, чтобы писать что-то в области, где они вчера научились отличать термины. И как видно, всё ещё лажают.

    Нет такого "метода программирования" "замыкания"! Чушь и ахинея. Есть возможность языка "лямбда".
    А "метод" - это ООП, ФП, процедурное, логическое и т.п.

     

  • 1.13, Аноним (13), 10:56, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как разработчик С++ со стажем начал изучать swift некоторое время назад и по сути вижу, что swift это по сути С++ "под капотом".
    Понятно, что синтаксиз переработан, идеология другая - но это тот же С++. Код становится лаконичнее, вместо std::shared_ptr<Tclass> obj видим просто T obj. Добавлены разные плюшки, что-то запрещено делать как в С++ и делать нужно по другому. Но бинарный код в итоге должен получиться по производительности такой же, как если бы мы написали его на С++.
     
     
  • 2.14, Аноним (14), 11:09, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разработчик со стажем 1.5 месяца?
     
     
  • 3.17, Аноним (13), 11:24, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    12 лет
     
     
  • 4.24, Аноним (24), 11:41, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    переломный возраст
     
  • 4.92, Аноним (-), 10:29, 29/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > 12 лет

    Дайте угадаю, через описание в вакансии на мильён, вы купили себе мац за три ? Могу поздравить ,прибыло в полку ло.. этих, менятелей мира

     
  • 2.16, Аноним (16), 11:21, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > начал изучать swift

    Зачем?))

     
     
  • 3.18, Аноним (13), 11:28, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хочу новых очучений) rust, go и прочие не зашли
     
     
  • 4.19, Аноним (16), 11:31, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так ФП жи тогда. Что, слабо? ;)
     
     
  • 5.21, Аноним (13), 11:37, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слабо, потому как не понял что это такое)
     
     
  • 6.27, Ordu (ok), 12:23, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А это невозможно понять не освоив функциональный язык. Теоретических объяснений недостаточно, для того, чтобы прочувствовать идею.
     
  • 6.77, Gogi (??), 13:34, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ФП - это когда надо пробежать 100 метров и в принципе есть обычный метод бега. Но апологетам ФП это скучно и они изобрели "бег вприсядку", причём боком.
     
     
  • 7.88, InuYasha (??), 16:31, 28/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    crabcore
     
  • 4.51, Аноним (51), 16:48, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну так вперёд учить джаву и сишарп. или что там ещё вендорлокнутое осталось?
     
  • 2.33, Аноним (-), 13:21, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Но бинарный код в итоге должен получиться по производительности такой же, как если бы мы написали его на С++.

    сомнительно, потому что в swift используется ARC для ссылочных типов(напр. class), и чем больше создаётся объектов классов, тем чаще срабатывает ARC, а без class вряд ли получится обойтись, заменив class на struct, потому что в swift по умолчанию struct копируемые, а moveonly struct всё ещё нет, для moveonly struct нужно реализовать механизмы ownership и borrowing, а это значит, что должен быть borrow checker в компиляторе swift

     
     
  • 3.43, НяшМяш (ok), 15:49, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Структуры в Swift используют copy-on-write. То есть спокойно можно передавать структуру в методы и ничего копироваться не будет. А если вам нужно структуру модифицировать избежав копирования, то всегда есть inout и &
     
     
  • 4.45, Anonymous23554 (?), 16:05, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    есть сомнения, что вы про Array и Dictionary, которые copy-on-write, но в swift на данный момент есть только копируемые struct, а перемещаемых struct нет на данный момент.
     
     
  • 5.52, НяшМяш (ok), 16:53, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, точно, только коллекции CoW. Но это не отменяет возможности структуры перемещать. Хотя и делается это немного костыльно:



    func address(of data: UnsafeRawPointer) -> Int {
      return Int(bitPattern: data)
    }

    struct MoveOnly {
        var prop: Int = 0
    }

    func doSomething(data: inout MoveOnly) -> Void {
        data.prop = 5
        
        print(address(of: &data))
    }


    var base = MoveOnly()
    print(address(of: &base))

    base.prop = 3
    print(address(of: &base))

    doSomething(data: &base)
    print(address(of: &base))


    Такой код у меня печатает один и тот же адрес. А вот если я захочу из doSomething вернуть MoveOnly (или даже UnsafePointer<MoveOnly>), тогда результат будет копией.

     
  • 3.57, Аноним (13), 17:38, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кстати хорошее замечание, этого в swift еще не проверял. Возможно тут вы правы
     
     
  • 4.59, Аноним (13), 18:05, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя, в С++ я стараюсь получать shared_ptr везде по ссылке, так как инкрементировать счетчик ссылок в такой ситуации нет смысла. Подозреваю, что при передачи экземпляра класса в swift аргументом функции там также счетчик не инкрементируется
     
  • 2.44, Аноним (44), 15:57, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну если shared_ptr везде лепить, то может и получится такой же по производительности код. Только в задницу такой код, время жизни объектов потом понять невозможно.
     
  • 2.46, Аноним (46), 16:06, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так ведь vasya::Tclass obj и был закостылен в плюсах, если вдруг помимо Васи этот самый Tclass напишет ещё и Гриша например. Как это так просто берёт и решается в свифте?
     
     
  • 3.53, НяшМяш (ok), 16:56, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например, хотим мы свою структуру String изобрести, то потом взять библиотечную String можно вот так - Swift.String.
     
  • 2.55, Аноним (55), 17:06, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > должен получиться
     

  • 1.15, Аноним (15), 11:13, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Будет ли у этого проекта такая же судьба как и у Net core?
     
     
  • 2.25, Аноним (13), 12:18, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    К какая судьба у .Net Core? Он довольно активно тоже развивается
     
     
  • 3.36, Аноним (36), 14:50, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Судьба использования в свободных ОС.
     
  • 3.75, Gogi (??), 13:28, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Core - это как если бы сегодня оживили мамонта, но разрисовали его под слона. Нарисовать-то можно, но... не выживет он!

    Кору надо было делать 18 лет назад, когда какая-то идиотина предложила "а давайте переименуем Жабу в C# и попутно назовём JVM "большой платформой". ВОТ ТОГДА надо было думать о "не только виндузе"!
    Время профукано, стратегия "завязывать всё на венду" СРАБОТАЛА и сейчас у нас есть:

    1. .NET FW, который гвоздями прибит в Венде. Но он стабильный, достаточно шустрый, громадное количество либ на все нужды.
    2. WinForms, который суть враппер над Win API. Абсолютно непереносимое ОНО.
    3. WPF. Как надо было умудриться сделать ЯЗЫК ТЕГОВ непереносимым(!!!!!) до сих пор ума не приложу. Но это факт - MS официально отказалась от портирования WPF куда-либо и даже не обещает в перспективе.
    4. Корпоративный код, которого за 18 лет(!!) понаписано тонны. Плюс библиотеки, FOSS и т.п.
    5. Visual Studio - полнейшее говно мамонта ещё на COM-технологиях, 32-битная и абсолютно непереносимая.
    6. Программеры, которые в уютных вендах наблатыкались с дотнетом до состояния дзена. Сидят в Студии и ничего лучше этого под вендой нет. Rider по сравнению со Студией - неуклюжее фуфло.

    И вот теперь весь этот ГРУЗ ЛЕГАСИ кто-то решил сдвинуть с места, мол, хва сидеть на венде! Взялся за лямку и.... всего лишь порвал ширинку! :) Это невозможно. Кора без всего, что был УЖЕ написано для венды, просто не нужна. Вдвойне не нужна без такой технологии, как WPF.

    Ну и какие перспективы у коры?? (это я ещё не говорю про качество кода нынешних индусячих макак, которых в MS сейчас набежало множество)

     
     
  • 4.78, Anonym_1914 (?), 15:54, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Спокойно себе пишу на .netcore новые сервисы для банка из под macOS на rider, а работает потом все это дело на линуксе.

    Плюс так как это из семейства .net, то не вызывает страха у консервативного менеджмента, который всю свою жизнь привык видеть только .net framework, и о чем либо другом даже слышать не хочет.

    Так что зря вы так, очень даже приятная для работы технология, хоть и не хватает адекватной совместимости с legacy, типа того же wdsl.

     

  • 1.28, Аноним (28), 12:36, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Rust торт!
     
     
  • 2.30, Аноним (30), 12:45, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    "Е...ся это о....но, я читал". Ты писал на нём, а ешё на другом, чтобы сравнить?
     
  • 2.40, Брат Анон (?), 15:21, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, ну да. Учи давай. Пока контора не закрылась.
     
  • 2.76, Gogi (??), 13:30, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Раст - это ярчайший пример, когда за дело берутся "космические архитекторы". Мол, мой дело - напроектировать, а как вы там будете с этим ипасса - не моё дело.
    Мёртвый он, раст этот! И его еженедельные "промо-статьи" лишний раз доказывают, что его пихают во все щели, а он НЕ ЛЕЗЕТ! :)
     

  • 1.29, mos87 (ok), 12:44, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    открыл - это решил вести разработку совместно, свободно, общими усилиями

    опубликовал под очередной бздя-лицензией - это выкинул, может кто баги поправит.

     
  • 1.31, Аноним (-), 12:53, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Новость конкретно для яблоёбов. Линуксоиды уходим отсюда.
     
  • 1.32, Аноним (-), 13:14, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    быстродействие swift  сомнительное:
    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/swift-rust
     
     
  • 2.48, НяшМяш (ok), 16:09, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел самый последний тест regex-redux и навскидку вижу пару вещей - использование DispatchQueue.global() без приоритета (нужно было собственный queue инициализировать как в других тестах сделали, да и тонны оверхеда с async и group), входящая строка ASCII а потом везде дёргают .utf8 (тут на самом деле не уверен влияет ли это вообще) и NSRegularExpression не самая быстрая штука.
     

  • 1.34, Аноним (36), 14:47, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >Pеализация Swift построена с задействованием технологий свободного проекта LLVM.

    Apple, когда сделаете автономный компилятор, тогда приходите.

     
     
  • 2.37, Аноним (-), 14:54, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    а кто по-твоему llvm сделал и развивает?
     
     
  • 3.38, Аноним (36), 14:58, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Они и сделали. Я имею ввиду компилятор Swift неоснованный на LLVM.
     
     
  • 4.39, Аноним (-), 15:11, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в этом нет смысла, если есть компонент, прекрасно решающий свою задачу
     
     
  • 5.85, Аноним (85), 14:58, 28/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да вот и думаю, зачем всё это мне. Пусть всем этим хозяйством ябблофаги интересуются.
     
  • 4.42, Lex (??), 15:35, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Они и сделали. Я имею ввиду компилятор Swift неоснованный на LLVM.

    Зачем ?
    Тем более, что у них практически всё так или иначе на llvm завязано и не только в свифте

     
  • 4.47, Аноним (-), 16:08, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Swift изначально проектировался с прицелом на llvm, а llvm - на в том числе подобные ЯП
     
  • 2.49, Аноним (46), 16:11, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Ещё один очень нужный компилятор с ещё одними своими приколами"©®?
     

  • 1.60, Аноним (60), 21:00, 26/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Он весь на С++ написан
     
     
  • 2.64, Аноним (10), 22:41, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Логично, LLVM же. И что дальше?
     
  • 2.65, Аноним (65), 23:56, 26/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а с++ на си писали, а си - на асме, а асм - в кодах... В общем, изначально были счёты.
     
     
  • 3.69, Аноним (-), 07:11, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Помню во времена СССР продавщицы в магазинах и универмагах счётами пользовались.
     
     
  • 4.80, Аноним (65), 17:59, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что на счётах проще обмануть. Так-то серийно в Союзе производились электромеханические калькуляторы в 50-х годах, электронные - в 60-х, а в 70-х уже программируемые пошли. Но продавцы продолжали долбиться в счёты.
     
     
  • 5.87, Аноним (87), 16:30, 28/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В 90-е был у родителей на работе, управление морским транспортом, отдел эксплуат... большой текст свёрнут, показать
     
     
  • 6.89, Аноним (65), 17:38, 28/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > но это были единичные вещи, которые не достать. И если я не ошибаюсь то программируемый калькулятор стоил как з/п инженера, а может даже больше.

    Конечно ошибаешься, у меня к началу 90-х уже был МК-61, не считая обычных карманных калькуляторов. На месячную зарплату простого рабочего можно было неск-ко таких МК купить.

     
  • 3.79, Страшный Аноним (?), 16:07, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все так. Но это только первые версии. Когда язык зрелый, то компилятор языка пишется на нем же самом. Например, компилятор языка С написан на С. Компиятор языка Java написан на Java.
     
     
  • 4.81, Аноним (65), 18:03, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Рад за тебя, что ты выучил сказку "Репка". Как там, мышка за кошку... дедка за бабку... скросскомпилировали жабу!
     
  • 2.66, Аноним84701 (ok), 00:24, 27/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Он весь на С++ написан

    https://www.gnu.org/software/mes/
    > GNU Mes is a Scheme interpreter and C compiler for bootstrapping the GNU System.
    >The Scheme interpreter is written in ~5,000 LOC of simple C, and the [b]C compiler written in Scheme[/b] and these are mutual self-hosting.
    >  Mes+MesCC can compile an only lightly patched TinyCC that is self-hosting. Using this tcc and the Mes C library we now have a Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5, binutils-2.20.1, gcc-2.95.3.

    Шах и мат.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру