Это же не какой-то врожденный недостаток самого языка. Просто язык новый, он активно развивается, как и его основной компилятор, а стабилизация ABI усложнит эту работу. Плюс, на ржавчине в данный момент нет готовых и полезных широкой общественности приложений или библиотек.
Да и вообще, у ржавчины даже просто стандарта языка еще нет)
Тогда все плохо, конечно, и остается только разводить филосовские беседы по поводу тотального доминирования раздутого и переусложненного ПО в индустрии и с грустью смотреть на всякие экспериментальные минималистичные штуки в духе http://sta.li ))
Если ржавчина станет настолько популярна, что легкое распухание сотен тысяч исполняемых файлов на компьютере рядового пользователя станет серьезной проблемой, то тогда и будут стабилизировать ABI и все это разгребать. На данном этапе развития языка это далеко далеко не самая актуальная проблема.
Ну так статья потому и была написана, что вопрос очень часто всплывает у знакомящихся с языком. Чаще, наверное, чем медленная скорость работы кода (из-за отладочных сборок по умолчанию).
Пора уже придумать формат библиотек, в котором код хранился бы в виде синтаксического дерева, и пересмотреть сам процесс линковки как таковой.
По умолчанию ржавчина так и делает для своих собственных библиотек, иначе бы обобщенный код из библиотек был бы недоступен (заголовочных файлов-то нет).
Вместо Contributor Agreement можно просить, чтобы коммиты были под BSD или еще какой-нибудь «мягкой» лицензией.
«ваш» будет код или «не ваш» зависит от лицензии на эти коммиты посторонних людей. Если только принимать коммиты под правильной лицензией — то «ваш» и останется.
Хотя с точки зрения продажи конечного продукта это не принципиально, сами по себе BSD и близкие лицензии не передают код в чье-то владение, копирайт на комиты так и остается за изначальным их автором.
достаточно много респондентов сказали, что используют nightly-билды компилятора. Есть мысли на этот счет?
Я тут добавлю, что с тех пор как rustup довели до ума, переключаться между разными версиями компилятора на одной машине стало дико просто. Лично мне ночная сборка бывает нужна, допустим, для локальной установки статического анализатора clippy, что бы не гонять CI-сборки тысячу раз для вычистки новых предупреждений.
Потому что очень размытое заявление (в таком виде выглядит очень похоже на много кем критикуемую WTFPL), действительность которого для законодательств разных стран сомнительна. И, как я понимаю, в качестве бонуса на тебя могут подать в суд за ущерб, нанесенный твоим ПО (потому что не проговаривается отказ от ответственности блаблабла), или насчет патентов.
Это же не какой-то врожденный недостаток самого языка. Просто язык новый, он активно развивается, как и его основной компилятор, а стабилизация ABI усложнит эту работу. Плюс, на ржавчине в данный момент нет готовых и полезных широкой общественности приложений или библиотек.
Да и вообще, у ржавчины даже просто стандарта языка еще нет)
Тогда все плохо, конечно, и остается только разводить филосовские беседы по поводу тотального доминирования раздутого и переусложненного ПО в индустрии и с грустью смотреть на всякие экспериментальные минималистичные штуки в духе http://sta.li ))
Все по разному понимают что такое "системный язык". Под одни определения ржавчина подходит, под другие — нет.
А какие вообще сложности с этим могут быть? Тут только теряется автономность приложения.
Смотря что конкретно иметь ввиду под "рантайм", но в обычном смысле, наверное, можно сказать что он весь во внешней библиотеке.
Насколько я знаю, с этим никаких гарантий никто не дает сейчас.
Если ржавчина станет настолько популярна, что легкое распухание сотен тысяч исполняемых файлов на компьютере рядового пользователя станет серьезной проблемой, то тогда и будут стабилизировать ABI и все это разгребать. На данном этапе развития языка это далеко далеко не самая актуальная проблема.
cdylib для библиотек нужен
Ну так статья потому и была написана, что вопрос очень часто всплывает у знакомящихся с языком. Чаще, наверное, чем медленная скорость работы кода (из-за отладочных сборок по умолчанию).
Потому что он для этого нужен по умолчанию, если специально не извращаться. Просто у Си рантайм идет сразу со всеми распространенными ОСями.
https://www.rust-lang.org/en-US/faq.html#does-rust-have-a-runtime
По умолчанию ржавчина так и делает для своих собственных библиотек, иначе бы обобщенный код из библиотек был бы недоступен (заголовочных файлов-то нет).
По идее, во время сборки неиспользуемые куски зависимостей будут выкинуты оптимизатором.
Есть у меня мысль, к сожалению, что тут оптимизатор все подчистую выкидывает просто, потому что ничего публичного не объявлено.
это уже так хорошо не укукоживается.
У меня в справке варианта нет, но команда выполняется. Наверное, просто забыли обновить справку.
А если с оптимизациями?
Хотя с точки зрения продажи конечного продукта это не принципиально, сами по себе BSD и близкие лицензии не передают код в чье-то владение, копирайт на комиты так и остается за изначальным их автором.
И да, новый формат сообщений от компилятора очень удобный для чтения человеком, ради него сейчас ночную сборку как основную и использую.
Интересно, зачем они все привязки используют свои собственные? О.о Даже инициализация контекста своя для каждой платформы, хотя давно уже есть glutin.
Я тут добавлю, что с тех пор как rustup довели до ума, переключаться между разными версиями компилятора на одной машине стало дико просто. Лично мне ночная сборка бывает нужна, допустим, для локальной установки статического анализатора clippy, что бы не гонять CI-сборки тысячу раз для вычистки новых предупреждений.
http://opensource.stackexchange.com/questions/1359/should-i-use-the-wtfpl-for-my-floss-project