The OpenNET Project / Index page

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

Релиз языка программирования Rust 1.21

14.10.2017 09:05

Доступен релиз языка программирования Rust 1.21, развиваемого проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.

По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек поддерживается репозиторий crates.io.

В подготовке нового выпуска приняли участие 135 разработчиков. Основные новшества:

  • Обеспечена возможность использования статичных ссылок для литералов (для размещения значений в статичной памяти (куче), вместо слотов стека):
    
        fn main() {
            let x: &'static u32 = &0;
        }
    
  • Перед блоком "<...>" теперь допустимо указание опционального разделителя "::" в любом контексте:
    
        my_macro!(Vec<i32>::new); // Нужно было писать раньше
        my_macro!(Vec::<i32>::new); // Теперь можно указать и так
    
  • Библиотека jemalloc обновлена до версии 4.5.0;
  • Обеспечен запуск LLVM параллельно со стадией трансляции при компиляции с несколькими юнитами генератора кода ("-Ccodegen-units=N"). Изменение позволило снизить пиковые скачки в потреблении памяти в процессе сборки;
  • Стабилизированы API std::mem::discriminant, needs_drop и итератор Iterator::for_each;
  • Расширена документация: На сайт doc.rust-lang.org добавлены руководства по rustdoc и std::os. Документация по пакетному менеджеру перенесена в раздел doc.rust-lang.org/cargo;
  • Добавлена возможность установки RLS (Rust Language Server, серверный модуль для интегрированных сред разработки с поддержкой протокола LSP) при помощи команды rustup ("rustup component add rls-preview");
  • В пакетном менеджере Cargo появилась возможность указания нескольких имён пакетов в команде "cargo install". В файл Cargo.toml добавлена секция "[patch]" (позиционируется как замена "[replace]") для переопределения определённых частей в графе зависимостей и обеспечена возможность использования масок в стиле gitignore в полях include и exclude. Добавлена новая опция "--all-targets" для выбора сразу всех целевых платформ.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Релиз языка программирования Rust 1.20
  3. OpenNews: Третий выпуск операционной системы Redox OS, написанной на языке Rust
  4. OpenNews: В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
  5. OpenNews: Эксперимент по разработке частей ядра Linux на языке Rust
  6. OpenNews: Доступна операционная система Redox 0.2, написанная на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47385-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (96) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:35, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +27 +/
    > let x: &'static u32 = &0;

    уродство

     
     
  • 2.18, Aleks Revo (ok), 10:59, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> let x: &'static u32 = &0;
    > уродство

    Пони и единорогов в ASCII не завезли.

     
     
  • 3.61, omnomnom (?), 09:51, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Из этого следует что язык нужно превратить в сомнительное подобие J?
     
  • 2.30, Аноним (-), 15:16, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    автор новости пытался написать, что компилятор научился автоматически присваивать ссылкам на константы в выражениях вроде "let x = &0" время жизни "static"
     
  • 2.47, trdm (ok), 20:13, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > уродство

    что только не сделают, что-бы с++ не учить..

     

  • 1.2, Аноним (-), 09:40, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Когда уже появится язык, позволяющий получить нужные программы в один клик?
     
     
  • 2.8, nc (ok), 10:15, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда появится Искусственный Интеллект, программы будут писаться в 0 кликов :)
     
     
  • 3.11, A.Stahl (ok), 10:24, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +20 +/
    Сейчас набегут vim'еры и начнуть визжать что они уже пишут программы в 0 кликов.
     
     
  • 4.25, Аноним (-), 13:04, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только в процессе много бибиканья происходит.
     
  • 2.20, kai3341 (ok), 11:24, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Когда уже появится язык, позволяющий получить нужные программы в один клик?

    Delphi

     
     
  • 3.34, Аномномномнимус (?), 16:48, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    лол какой жир
     
  • 3.38, пох (?), 18:46, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    с ума сошел? Какой один клик, мне новую мышь в то время пришлось покупать.

     
  • 2.31, Sw00p aka Jerom (?), 16:36, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем вам язык тогда? берите уже готовые нужные программы.
     
  • 2.49, trdm (ok), 20:15, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  Когда уже появится язык, позволяющий получить нужные программы в один клик?

    Давно уже есть. Это - чемодан баблаина.
    Идешь и покупаешь нужные программы в один клик.

     
  • 2.74, Аноним (-), 15:17, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда уже появится язык, позволяющий получить нужные программы в один клик?

    Возбми какой-нибудь scratch, чтоли.

     

  • 1.6, Аноним (-), 10:06, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >let x: &'static u32 = &0;

    Смесь Pascal, Perl, Java.

    >my_macro!(Vec::‹i32›::new);

    И эти люди рассказывают ужасы про Perl.

     
     
  • 2.21, Дядя (?), 11:33, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Так в Перле и нет никаких ужасов.
     
     
  • 3.35, НяшМяш (ok), 17:26, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    в Перле и так почти ничего нет
     
  • 3.50, Анонисмус (?), 20:55, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Кроме своего Perl.
     
  • 3.54, Anonzzz (?), 23:56, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Кроме собственного синтаксиса
     

  • 1.7, Аноним (-), 10:14, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Перед блоком "‹...›" теперь допустимо указание опционального разделителя "::" в любом контексте

    Нужно больше разделителей! Даёшь ":::", а лучше ":::::"!

     
     
  • 2.9, A.Stahl (ok), 10:16, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И обязательные питоноотступы!
     
     
  • 3.33, Аномномномнимус (?), 16:47, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Любой приличный разраб должен ставить нормальные отступы, а вот эти портянки с винегретом в одну строку/колонку жуйте сами
     
     
  • 4.36, A.Stahl (ok), 18:22, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вот именно. Нормальные. А не питоноотступы. И там где нужно. А не везде.
     
  • 2.56, Аноним (-), 01:00, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Даёшь ":::", а лучше ":::::"!

    [:::::]

     
     
  • 3.57, Аноним (-), 01:01, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> Даёшь ":::", а лучше ":::::"!
    > [:::::]

    :[|||||]:

     
     
  • 4.68, Аноним (-), 13:26, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    <======3
     
     
  • 5.94, Аноним (-), 13:13, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    8===э
     

  • 1.10, Аноним (-), 10:16, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >Rust напоминает C++

    Больше C

     
  • 1.12, Аноним (-), 10:37, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >существенно отличается в некоторых деталях реализации синтаксиса и семантики

    В худшую сторону ахах

     
  • 1.13, лютый жабист__ (?), 10:40, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    В этом крутом убийце всего и вся по-прежнему 5 типов строк или уже поболее сделали?
     
     
  • 2.15, red75prime (?), 10:51, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Как было 2 так и осталось.
     
     
  • 3.28, red75prime (?), 14:36, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а то, что в каждой операционке есть ещё своё видение того как работать со строками - издержки реального мира.
     
     
  • 4.44, KonstantinB (ok), 19:34, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это вы щас Windows операционной системой назвали? :-)

    Потому что в других ОС я проблем с такими элементарными вещами не припоминаю.

     
  • 3.62, лютый жабист__ (?), 10:18, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну 5 способов конкатенации.
     
  • 2.16, Aleks Revo (ok), 10:55, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Язык позволяет создавать новые типы, поэтому множество типов строк - открытое. Пользуйтесь. Или не пользуйтесь. :-)
     
     
  • 3.32, Sw00p aka Jerom (?), 16:39, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Язык позволяет создавать новые типы, поэтому множество типов строк - открытое. Пользуйтесь.
    > Или не пользуйтесь. :-)

    "много типов строк" - а как отличить одну строку от другой ?

     
     
  • 4.48, нонон (?), 20:14, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    По типу, очевидно
     
     
  • 5.58, Sw00p aka Jerom (?), 05:09, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    что есть тип?
     
     
  • 6.73, Ordu (ok), 14:55, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Множество значений? В смысле теории множеств. Это не совсем так, применительно к программированию, в том смысле, что эта абстракция обладает определёнными недостатками в контексте программирования. Но можно попробовать в данном конкретном случае плясать от неё: может она поможет тебе объяснить, в чём собственно состоит твой вопрос. Я не понимаю, и судя по интенсивности и осмысленности диалога, другие тоже не понимают, что именно тебе интересно было бы узнать.
     
     
  • 7.78, Sw00p aka Jerom (?), 17:04, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    что есть тип? в ассемблере есть понятие типа?
     
     
  • 8.79, Ordu (ok), 17:21, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотря как, мы определяем понятие тип Выбор того, как определять понятие, опр... большой текст свёрнут, показать
     
  • 8.80, Аноним84701 (ok), 17:22, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    db dw dd dq mul, imul, idiv, scasb,scasw, PCMPISTRI Оно ... текст свёрнут, показать
     
     
  • 9.83, Sw00p aka Jerom (?), 21:40, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ну и что значить db - Define constant byte s эт разве тип ... текст свёрнут, показать
     
     
  • 10.86, Ordu (ok), 22:43, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, это тип Если русским языком пытаться обозначить этот тип, то выйдет что-то ... текст свёрнут, показать
     
     
  • 11.97, Sw00p aka Jerom (?), 15:54, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    этот байт в оперативке и число и строковый символ и последовательность битов -... текст свёрнут, показать
     
     
  • 12.101, Ordu (ok), 16:44, 17/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть, смущает то, что тип имеет несколько разных свойств Или то, что наше ин... большой текст свёрнут, показать
     
     
  • 13.103, Sw00p aka Jerom (?), 18:48, 17/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так у нас уже тип имеет свойство ... текст свёрнут, показать
     
     
  • 14.104, Ordu (ok), 19:14, 17/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А почему нет Мы объединяем элементы в множество по каким-то принципам, так Все... большой текст свёрнут, показать
     
     
  • 15.105, Sw00p aka Jerom (?), 23:17, 18/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    коментарий без единого слова тип с выше описанным - соглашусь, есть понятие... текст свёрнут, показать
     
     
  • 16.106, Ordu (ok), 08:58, 19/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну это закономерный приём Если оппонента смущает какое-то слово, надо пользоват... большой текст свёрнут, показать
     
     
  • 17.107, Sw00p aka Jerom (?), 20:15, 19/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ну я в принципе ждал ответа вроде этого тип - это Приведу выдержку из в... большой текст свёрнут, показать
     
     
  • 18.110, Ordu (ok), 00:24, 20/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во С этого надо было начать Я с самого начала подозревал некорректное использо... большой текст свёрнут, показать
     
     
  • 19.111, Ordu (ok), 00:37, 20/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Простите nginx отвалился по таймауту пока постил, и я прежде чем подумать, заче... текст свёрнут, показать
     
  • 17.108, Sw00p aka Jerom (?), 20:25, 19/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    небольшое дополнение на той же Машине Тьюринга можно выполнить любой разрешим... текст свёрнут, показать
     
  • 10.87, Аноним84701 (ok), 23:49, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Обычно просто define byte , хотя конечно сильно зависит от диалекта Чем не тип... текст свёрнут, показать
     
     
  • 11.96, Sw00p aka Jerom (?), 15:48, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чем не тип Ну где тут тип ... текст свёрнут, показать
     

  • 1.14, Аноним (-), 10:47, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    На нем GUI можно или как у go - удел сетевых уно-файл&уно-сервис?
     
     
  • 2.17, Aleks Revo (ok), 10:58, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > На нем GUI можно или как у go - удел сетевых уно-файл&уно-сервис?

    https://crates.io/search?q=ui
    https://crates.io/search?q=gui

     
     
  • 3.19, Аноним (-), 11:18, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А также:
    https://godoc.org/?q=ui
    https://godoc.org/?q=gui
     

  • 1.22, Lester (?), 12:03, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Перед блоком "‹...›" теперь допустимо указание опционального разделителя "::" в любом контексте
    > my_macro!(Vec::‹i32›::new); // Теперь можно указать и так

    Авторам не стоит на этом останавливаться. Нужно добавить еще опциональных разделителей, совершенству нет предела.

     
     
  • 2.23, Аноним (-), 12:10, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    С виду язык похож на пародию на C++. Если он станет популярен, в коде у программистов будет полная анархия.
     
     
  • 3.40, пох (?), 18:55, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > С виду язык похож на пародию на C++

    что тебя удивляет, если его написали программисты на c++, решившие что сейчас они покажут миру, как правильно придумывать языки?

    > Если он станет популярен,

    уже стал.

     
     
  • 4.102, _ (??), 17:22, 17/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Если он станет популярен,
    >уже стал.

    И что же значимое на нём написали? Не начали переписывать, а мля доделали? Ничего?

     
  • 2.39, пох (?), 18:51, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Авторам не стоит на этом останавливаться. Нужно добавить еще опциональных разделителей,
    > совершенству нет предела.

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

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

     
     
  • 3.53, Аноним (-), 23:54, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Каждый раз, как я вижу в языке двоеточия

    Прошло 5 часов, а список языков без двоеточий в вашем комментарии всё ещё пустой.

    Хотя в чём-то я с вами согласен.

     
     
  • 4.69, Аноним (-), 13:28, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Языка совсем без двоеточий не существует. Важна концентрация двоеточий на километр кода.
     
     
  • 5.92, leap42 (ok), 10:48, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Языка совсем без двоеточий не существует

    а как же petooh?

    https://github.com/Ky6uk/PETOOH

     

  • 1.24, Аноним (-), 12:17, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Хоронили C++, порвали три альтернативы. ©
     
  • 1.26, fidaj (ok), 13:45, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    что-то онолитеки с опеннета невзлюбили ржавчину.
     
     
  • 2.29, Аноним (-), 14:38, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что его адепты ведут себя как сектанты-неосиляторы.
     
     
  • 3.41, Аноним (-), 19:11, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +10 +/
    > Потому что его адепты ведут себя как сектанты-неосиляторы.

    Пока что - ни одного адепта мы тут не видили, зато куча "несектантов" уже за 40 комментариев с подгораниями^W^W о (не)нужности  и (не)правильности накатали.


     
     
  • 4.70, Аноним (-), 13:29, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ничего необычного, на новости где ожидается повышенная концентрация сектантов ожидаемо набигают тролли.
     
     
  • 5.72, Аноним (-), 13:51, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Ничего необычного, на новости где ожидается повышенная концентрация сектантов ожидаемо
    > набигают тролли.

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

     
     
  • 6.81, freehck (ok), 19:55, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да и троллей - раз-два и обчелся (прошу не путать тролля ... и обычного интернетного балабола)

    "Только ситхи всё возводят в абсолют". На самом деле тролли по толщине все разные. Каждой аудитории -- своя толщина. :)

    То, что набегают толпы толстячков, кое-что говорит об аудитории, как ни крути. ;)

     
  • 2.43, Борщдрайвен бигдата (?), 19:32, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Потому что сами на нем не пишут и вряд ли будут писать.
    У пользователей языка совершенно другие претензии, посерьезней и намного более конкретные.
    А так занимать сторону побивателя камнями (либо чем-то другим, потеплее и помягче) всегда приятно. Чувство локтя и вот это всё.
     
     
  • 3.55, Аноним (-), 00:05, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > У пользователей языка совершенно другие претензии, посерьезней и намного более конкретные.

    Судя по списку изменений, претензии следующие:

    1. Нельзя указывать опциональный разделитель :: перед блоком <>. А иногда хочется.
    2. jemalloc уже две недели как вышел 4.5.0, а у вас ещё старьё.
    3. Хватит каждый релиз менять Iterator::for_each несовместимым образом!
    4. Хотим, чтобы в файле пакетного менеджера вместо [replace] использовалось название [patch]. Ну и поведение тоже поменяйте как-нибудь.

     

  • 1.27, fidaj (ok), 13:46, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >и предоставляет средства для достижения высокого параллелизма выполнения заданий

    может кто знает, что-то подобное OpenACC в нем реализовано?

     
  • 1.37, scor (ok), 18:33, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, плз, кто в теме. Там подобные штуки
    '''
    trait T1 {
      const FS: usize;
      fn f1(&self) -> [u32; Self::FS];
    }
    '''
    уже можно делать или пока не запилили?
     
  • 1.42, Аноним (-), 19:32, 14/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Странный язык какой-то. Хелловорлд весит аж 600 килобайт. На с++ у меня целый проект с гуем, с сетью, с 3д, с кучей огромых формул, порой не помещающихся на экран монитора, и скомпиленный файл занимает чуть менее 300 килобайт. А тут одна строка в консоли - 600 килобайт! Как так-то?
     
     
  • 2.45, Sirob (?), 20:00, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я просто оставлю ссылку на эту замечательную статью здесь: https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html

    Автор понятно объясняет, почему бинарники, скомпилированные Rust, такие большие и показывает как уменьшить размер hello world с 600+ кб до 9.

     
     
  • 3.91, Аноним (-), 10:35, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть эталонная реализация статически линкует аллокатор, и стандартную библиотеку? Какой же всё-таки руст "безопасный" язык!
     
  • 2.46, Конь (?), 20:04, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что по дефолту в бинарник суется std и jemalloc, которые можно откльчить, если очень хочется помериться пипи… бинарниками. И кстати, ты еще не учел, что в твой проект кроме этих 300 килобайт еще входит стандартная библиотека С++, проста она линкуется динамически
     
  • 2.51, angra (ok), 22:03, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А теперь возьми свой замечательный бинарник с гуем, сетью, 3d и формулами и попробуй запустить на машине с той же ОС, но без libstdc++ и прочих либ. Почитай, что он напишет, потом посмотри на вывод ldd.
     
     
  • 3.52, Вася1970 (?), 22:52, 14/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    без операционки и с процессором другой архитектуры. нет - полумерам!
     
     
  • 4.60, angra (ok), 06:48, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А что же ты сам полумерами ограничился? Если уж косишь под дурачка, то на полную катушку, предложи запустить вообще без компьютера.
     
  • 4.82, freehck (ok), 20:05, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > без операционки и с процессором другой архитектуры. нет - полумерам!

    Тебе вообще-то мягко намекнули, что в растовом бинарнике куча всего библиотечного понапихано. А вообще, вопрос изначально был дурацкий. На него вечный ответ "запусти ldd и поймёшь, почему бинарь сишной программы весит меньше".

     
  • 3.67, Аноним (-), 13:25, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так и запишем, разделяемый рантайм ниасилили.
     
  • 3.89, Вареник (?), 04:35, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня прошивка контроллера в 32кбайт флеша влазит.

    Никаких shared lib, ядер и т.д.
    Зато куча формул, сеть, протокол.

     

  • 1.59, Аноним (-), 06:06, 15/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Он даже уродливее C++
     
     
  • 2.63, gred (ok), 10:30, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Он даже уродливее C++

    Что поделаешь, любой язык расширяющий синтаксис Си будет смотреться уродцем, кроме самого Си.

     
     
  • 3.64, Борщдрайвен бигдата (?), 12:57, 15/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > язык расширяющий синтаксис Си

    Слишком толсто. Даже по меркам опеннета.

     
  • 3.90, Аноним (-), 08:03, 16/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    C# вполне себе конфетка (по синтаксису), вот если бы он компилировался в нативный код
     

  • 1.93, Аноним (-), 11:18, 16/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    К сожалению для Rust, теперь он стал ненужен, когда в C++17 сделали If and Switch statement with initializer (https://skebanga.github.io/if-with-initializer/) и Structured bindings (https://skebanga.github.io/structured-bindings/)




    std::map<int, std::string> myMap;
    ....
    if (auto[it, ok] = myMap.insert({ 2, "hello" }); ok)
    {
      ....
    }



     
  • 1.95, pripolz (?), 14:13, 16/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кстати, гораздо лучше (и новее) Adobe Rust. Поддердивает kind-ы (вызовы типа kindof()) например. Ещё можно мержить переменные.
     
     
  • 2.100, Аноним (-), 06:55, 17/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А корованы там можно?
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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