LINUX.ORG.RU

Apple открыла исходный код Swift

 apache license, , , ,


1

5

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

Исходный код доступен под лицензией Apache License 2.0.

Репозиторий на GitHub

>>> Подробности

★★★★★

Проверено: beastie ()
Последнее исправление: cetjs2 (всего исправлений: 3)
Ответ на: комментарий от anonymous

А что не так? В Расте тоже есть референс-каунтеры, чеки с большой вероятностью будут elided ниже по стеку (на уровне кодогенерации), в Расте компилер тоже шибко умный и например решает передавать объект по значению или по ссылке.

Разумеется соответствие не 1-в-1, языки то разные, но наркоманства тут не видно.

anonymous
()
Ответ на: комментарий от anonymous

В Расте тоже есть референс-каунтеры

Как отдельный тип данных, а не на уровне рантайма.

чеки с большой вероятностью будут elided

Как? Тем более, overflow check?

В Расте компилер тоже шибко умный и например решает передавать объект по значению или по ссылке

Ну так гони пример, я такого не видел.

anonymous
()
Ответ на: комментарий от umren

наверное он намекает, что руст более низкоуровневый и заменяет сишечку.

Именно.

anonymous
()
Ответ на: комментарий от anonymous

чеки с большой вероятностью будут elided

Как? Тем более, overflow check?

Computer science в помощь, в JVM вон элайдят даже небо, даже аллаха, значит и в LLVM смогут, рантайм то их собственный, добавить фичу специально для свифта не будет проблемой.

В Расте компилер тоже шибко умный и например решает передавать объект по значению или по ссылке

Ну так гони пример, я такого не видел.

Не пишу на расте, нет готовых сниппетов, читал где то в простынях Клабника на реддите, причем неоднократно.

anonymous
()
Ответ на: комментарий от anonymous

Не пишу на расте, нет готовых сниппетов, читал где то в простынях Клабника на реддите, причем неоднократно.

Я пишу хелворды на расте и читаю Клабника на реддите. Нет там такого.

Короче, на системный язык свифт не тянет -> прямым конкурентом расту не является. Будешь спорить?

anonymous
()
Ответ на: комментарий от anonymous

М, вот это разве не оно: «Rust apparently already uses pass-by-reference behind the scenes for non-floating point, larger than pointer types» (https://internals.rust-lang.org/t/why-do-i-have-to-indicate-pass-by-simple-re...), я в детали описанного не лез, но сложилось впечатление что в некоторых случаях компилер в расте сам решает, как параметры в функцию передать (если это логику кода не меняет).

Про конкурренцию и низкоуровневость - интересно, можешь привести пример чего-то полезного, что легко делается в расте и сложно/никак в свифте, интересно попробовать примеры.

anonymous
()
Ответ на: комментарий от anonymous

можешь привести пример чего-то полезного, что легко делается в расте и сложно/никак в свифте

Ядра ОС и прошивки для микроконтроллеров. Правда, насчёт легко это преувеличение, для МК чувствуется недостаток инфраструктуры, да и компиляется он пока только под ARM, надеюсь, это изменится. Суть в том, что раст позволяет явно контролировать выделение памяти и при желании писать код, юзая только стек. Ну и плюс «тонкий» рантайм.

Rust apparently already uses pass-by-reference behind the scenes for non-floating point, larger than pointer types

И правильно делает. Это простая оптимизация, в бол-ве случаев ускорит код и не требует никаких фич рантайма.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.