The OpenNET Project / Index page

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

Выпуск языка программирования Rust 1.39

09.11.2019 08:29

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

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

Основные новшества:

  • Стабилизирован новый синтаксис асинхронного программирования, основанный на функции "async", блоке async move { ... } и операторе ".await", которые упрощают написание обработчиков, не блокирующих основной поток команд. По сравнению с ранее предлагавшимся API для асинхронного ввода/вывода конструкции async/.await просты для восприятия, хорошо читаемы и позволяют реализовывать сложные асинхронные взаимодействия с использованием привычных приёмов управления потоком выполнения на основе циклов, условных операторов и исключений.

    Синтаксис Async-await позволяет создавать функции, которые могут приостанавливать своё выполнение, возвращать управление в основной поток, а затем возобновлять выполнение с того места, где они были остановлены. Например, подобная приостановка востребована при обработке ввода/вывода, в котором во время ожидания поступления очередной порции данных можно выполнять другую работу. Функции и блоки, определённые через "async fn" и "async move", возвращают типаж Future, определяющий представление отложенного на будущее асинхронного вычисления. Непосредственно инициировать отложенное вычисление и получить результат можно при помощи оператора ".await". До вызова ".await" никаких действий не производится и не планируется заранее, что позволяет создавать сложные вложенные конструкции без дополнительных накладных расходов.

    
    
       async fn first_function() -> u32 { .. }
       ...
       let future = first_function();
       ...
       let result: u32 = future.await;
    
    
  • Стабилизирован "#![feature(bind_by_move_pattern_guards)]", позволяющий использовать переменные с типом привязки "by-move" в шаблонах и использовать ссылки на эти переменные в секции "if" выражения "match". Например, теперь допустимы следующие конструкции:
    
       fn main() {
           let array: Box<[u8; 4]> = Box::new([1, 2, 3, 4]);
    
           match array {
               nums
                if nums.iter().sum::() == 10
    
               => {
                   drop(nums);
               }
               _ => unreachable!(),
           }
       }
    
    
  • Разрешено указание атрибутов при определении параметров функций, замыканий и указателей на функции. Поддерживаются атрибуты условной компиляции (cfg, cfg_attr), управляющие диагностикой через lint (allow, warn, deny и forbid) и вспомогательные атрибуты вызова макросов.
    
       fn len(
           #[cfg(windows)] slice: &[u16],  // использовать параметр в Windows
           #[cfg(not(windows))] slice: &[u8], // использовать в остальных ОС
       ) -> usize {
           slice.len()
       }
    
    
  • Предупреждения о проблемах, выявленных при проверке заимствования переменных (borrow checker) c использованием техники NLL (Non-Lexical Lifetimes), переведены в разряд фатальных ошибок. Напомним, что система проверки на основе нового механизма учёта времени жизни заимствованных переменных дала возможность выявлять некоторые проблемы, которые оставались незамеченными старым кодом проверки. Так как вывод ошибки для подобных проверок мог повлиять на совместимость с ранее работающим кодом, вместо ошибок первое время выдавались предупреждения. Теперь при работе в режиме Rust 2018 предупреждения заменены на ошибки. В следующем выпуске вывод ошибки также будет реализован в режиме Rust 2015, что позволит окончательно избавиться от старого borrow checker;
  • Признак "const", определяющий возможность использования в любом контексте вместо констант, применён для функций Vec::new, String::new, LinkedList::new, str::len, [T]::len, str::as_bytes, abs, wrapping_abs и overflowing_abs;
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы Pin::into_inner, Instant::checked_duration_since и Instant::saturating_duration_since;
  • В пакетный менеджер cargo добавлена возможность использования для файлов конфигурации расширения ".toml". Добавлена предварительная поддержка сборки стандартной библиотеки непосредственно из Cargo. Добавлен флаг "--workspace", заменивший неоднозначно воспринимаемый флаг "--all". В метаданные добавлено новое поле "publish", позволяющее публиковать зависимости, указывая тег в git и номер версии. Добавлена тестовая опция "-Ztimings" для генерации HTML-отчета о времени выполнения различных стадий компиляции.
  • В компиляторе rustc в диагностических сообщениях включено обрезание хвостов кода, не умещающегося в терминал. Обеспечен третий уровень поддержки целевых платформ i686-unknown-uefi и sparc64-unknown-openbsd. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования и публикации официальных сборок.


  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Выпуск языка программирования Rust 1.38
  3. OpenNews: Обновление гипервизоров Intel Cloud Hypervisor 0.3 и Amazon Firecracker 0.19, написанных на Rust
  4. OpenNews: Фреймворк для написания защищённых драйверов для ядра Linux на языке Rust
  5. OpenNews: Cloudflare опубликовал реализацию VPN WireGuard на языке Rust
  6. OpenNews: Выпуск операционной системы Redox OS 0.5, написанной на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51835-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (106) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.7, Аноним (7), 09:46, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –26 +/
    Хороший язык программирования. На бумаге. Правда на нем невозможно реализовать некоторые алгоритмы (например дерево)
     
     
  • 2.9, Нонон (?), 09:47, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Какое дерево? 🌲
    Ну и можно пруфы что ли?
     
     
  • 3.10, Аноним (7), 09:48, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Проходи мимо, куда шел, зачем тебе пруфы
     
     
  • 4.12, Нонон (?), 09:55, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +10 +/
    В расте даже есть конструкции со счётчиком ссылок аля сборщик мусора.. там есть все на все случаи жизни и даже больше. И если кто-то говорит что на расте что-то сделать нельзя - то это просто нелепость какая-то..
     
     
  • 5.13, Аноним (7), 09:56, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да-да есть, но написано оно на unsafe (считай на си), а не на самом языке
     
     
  • 6.19, Аноним (19), 10:30, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так ведь не цели избавиться от unsafe везде и вся.
    Это ведь просто кукок кода где программист должен чувствовать больше ответственности.
    Можно сказать в unsafe мире благодаря Rust появляется директива safe, но всё и полностью safe не будет никогда.
     
     
  • 7.23, ыы (?), 11:02, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тогда я просто возьму C++ и превращу весь свой код в мешанину из unique_ptr и скажу - вот это крутая парадигма
     
     
  • 8.73, виндотролль (ok), 19:26, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    unique_ptr имеет runtime cost rust же все безопасные фишки обещает давать без ... текст свёрнут, показать
     
     
  • 9.78, ыы (?), 20:47, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну ты мягко говоря некомпетентен unique_ptr не имеет runtime cost... текст свёрнут, показать
     
     
  • 10.86, виндотролль (ok), 23:51, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот здесь говорят, что имеет https youtu be rHIkrotSwcc t 1061 Может от компил... текст свёрнут, показать
     
     
  • 11.116, Аноним (116), 14:13, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пусть говорят Это несравнимо с тем, сколько ресурсов потребляют браузеры ... текст свёрнут, показать
     
  • 10.132, cppguy (?), 09:49, 13/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть https www youtube com watch v rHIkrotSwcc ... текст свёрнут, показать
     
  • 7.43, Аноним (43), 13:34, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > не цели избавиться от unsafe везде и вся

    и какой же тогда во всём этом смысл?

     
     
  • 8.49, red75prim (?), 14:31, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы логические ошибки в большей части кода не приводили к UB со всеми вытекающ... текст свёрнут, показать
     
  • 8.72, burjui (ok), 19:23, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Смысл в том, чтобы было 99 9 кода без unsafe У меня в проекте на 6300 строк вс... текст свёрнут, показать
     
  • 8.76, Нонон (?), 20:20, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Смотри, сейчас объясню unsafe У тебя есть вектор Вектор как правило разного р... большой текст свёрнут, показать
     
     
  • 9.80, Аноним (80), 21:01, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В C так же, есть vec 5 и vec at 5 ... текст свёрнут, показать
     
     
  • 10.119, Аноним (119), 16:22, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да и итерирование без индекса уже скоро десять лет, как есть for auto x myVec... текст свёрнут, показать
     
  • 9.91, Аноним (43), 12:02, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно понял, но лично для меня как-то привычнее всё считать unsafe и проверят... текст свёрнут, показать
     
     
  • 10.99, Ordu (ok), 17:25, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нет Психологически невозможно выдерживать бдительность на постоянно высоком уро... большой текст свёрнут, показать
     
  • 8.125, Аноним (125), 03:04, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А ты каждый день пишешь дерево Ежедневная логика обычно спокойно обходится бе... текст свёрнут, показать
     
  • 6.24, alex (??), 11:32, 09/11/2019 Скрыто ботом-модератором     [к модератору]
  • –5 +/
     
     
  • 7.27, ыы (?), 11:57, 09/11/2019 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
     
  • 8.30, alex (??), 12:13, 09/11/2019 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 7.44, Аноним (44), 13:36, 09/11/2019 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 6.89, Junior frontend developer (?), 09:06, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что сами эти алгоритмы небезопасная черная магия. Нет никакой проблемы впрочем написать в unsafe, хорошо протестировать и скрыть за безопасным интерфейсом. В этом суть Rust, чтобы не весь код был unsafe, как в C++
     
  • 2.15, Грусть (?), 09:58, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://doc.rust-lang.org/std/collections/struct.BTreeSet.html
     
  • 2.28, Аноним (28), 12:01, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Бревна - это древнее г-но, которое давно пора похоронить и перейти на теговую семантику.
     
     
  • 3.29, ыы (?), 12:03, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вместо перехода по указателю каждый раз искать ID в хещтаблице или что ты имеешь в виду?
     
  • 2.32, Safe (?), 12:31, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    вроде можно с помощью raw pointers реализовать дерево в rust?
     
     
  • 3.69, a3k (?), 19:07, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно и без unsafe, были б руки прямые.
     
  • 2.117, TreeDataStructInRustIsPossible (?), 15:04, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    вот пример реализации дерева на rust:

    struct Node {
    data: i32,
    left: *mut Node,
    right: *mut Node
    }
    const _NULL: *const Node = std::ptr::null();

    fn create_node(data: i32)->Node{
    Node {data: data, left: _NULL as *mut Node, right: _NULL as *mut Node}
    }

    fn main() {
    let mut tree = create_node(0);
    tree.left = &mut create_node(123) as *mut Node;
    tree.right = &mut create_node(312) as *mut Node;
    unsafe {(*tree.left).data = 345};
    let root_value = tree.data;
    let left_value = unsafe {(*tree.left).data};
    let right_value = unsafe {(*tree.right).data};
    println!("root_value={}, left_value={},right_value={}", root_value, left_value, right_value);
    }

     
     
  • 3.118, Аноним (118), 15:44, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Т.е. unsafe с сырыми указателями во все дыры засунуть? Как не рекомендуется делать в расте? Тогда может лучше на Си?
     
     
  • 4.120, IsCbetterThanRust (?), 16:24, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    это же вроде один из примеров реализации дерева в Rust?
    разве то, что в C явно не указывается, что safe, а что unsafe - это лучше, чем в Rust?
     
     
  • 5.121, Аноним (118), 17:53, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше бы было если бы была представлена реализация без unsafe-приемчиков.
     
     
  • 6.122, Аноним (122), 18:18, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Лучше бы было если бы была представлена реализация без unsafe-приемчиков.

    https://docs.rs/ternary-tree/0.1.0/ternary_tree/
    > A Rust implementation of Ternary Search Trees, with no unsafe blocks

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

     

  • 1.8, Нонон (?), 09:46, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Поздравляю всех вовлечённых)
     
     
  • 2.52, Аноним (44), 14:53, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все комменты к данному ответу удалили. Странно все это. Такая флеймообразующая тема. А комментов совсем нет.
     

  • 1.18, Аноним (7), 10:20, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +24 +/
    Спасибо языку Rust, я стал большим поклонником C++, теперь его считаю удобным и красивым языком
     
     
  • 2.20, htower (ok), 10:42, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    уж щас тебе растоманы напихают в панамку от обиды :))))
     
     
  • 3.34, Нонон (?), 12:45, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Растаманы сами на плюсах пишут или писали. Так что видимо его сообщение про плюсы никого не цепануло
     
  • 3.127, Аноним (127), 03:10, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Пихалка не выросла. А попробуют - так плюсовики её быстро ему обратно засунут до состояния дырки.
     
  • 2.71, a3k (?), 19:10, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну C++ действительно стал лучше в последние годы.
     
  • 2.75, burjui (ok), 19:47, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И ещё надёжным и безопасным.
     

  • 1.21, Аноним (-), 10:48, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Что там сказал Линус про Раст, давайте вспомнем.
     
     
  • 2.33, Аноним (33), 12:38, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вспоменать надо npm leftpad. Все остальное не заслуживает вспоменания.
     
     
  • 3.41, Аноним (41), 13:32, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну что, вспомнели?
     
  • 2.82, Аноним (82), 21:10, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > That's not a new phenomenon at all. We've had the system people who used Modula-2 or Ada, and I have to say Rust looks a lot better than either of those two disasters.

    Ты об этом? Так это, наверное, самая большая похвала, которую можно получить от Линуса, если ты не C.

     

  • 1.25, анонимчик (?), 11:41, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Rust избавляет разработчика от манипулирования указателями

    спасибо, но нет.

     
     
  • 2.105, Аноним (105), 21:50, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже люблю указатели =)
     

  • 1.31, Аноним (31), 12:22, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну что там, хрусты, ваш язык ещё не целиком состоит из двух-трёхбуквенных кейвордов?
     
     
  • 2.36, Ppp (?), 12:58, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Rust переводиться так - ржавчина.
     
     
  • 3.51, Аноним (51), 14:50, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    rust
    [rʌst]

    1. сущ.

    1) коррозия; ржавчина
    2) бот. ржавчина (жёлто-оранжевые пятна на листах и стеблях растений в местах, где развиваются споры паразитных грибов)
    3) разг. деньги
    4) моральное разложение; коррупция, продажность
    5) вредное влияние безделья, бездеятельности (на характер, способности)

    2. гл.

    1)
    а) ржаветь, покрываться ржавчиной; подвергаться коррозии
    б) подвергать коррозии; окислять

    2)
    а) ухудшаться, портиться, притупляться, вырождаться (от бездействия)
    б) притуплять, ослаблять (память, ум)
    в) томиться от безделья

    3) портить, развращать, разлагать

    4)
    а) становиться рыжим; приобретать рыжеватый цвет
    б) придавать рыжий, рыжеватый цвет

    5) бот. быть поражённым ржавчиной (о растениях)

     
  • 2.47, red75prim (?), 13:56, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Две буквы "fn" таки получше нуля букв.
     
     
  • 3.48, Аноним (44), 14:14, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нуль букв лучше чем "fn".
     
     
  • 4.106, Аноним (105), 21:52, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем додумывать лучше явно сказать, а то мало ли еще чего во вселенной придумают данные или фунции не все ... Есть еще время и гравитация =)
     

  • 1.35, Ppp (?), 12:53, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Книга которая у них на сайте отражает последние изменения в языке? Если нет то как учить этот Rust?
     
     
  • 2.38, Аноним (38), 13:25, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет. Текущая книга явно сильно отстает по фичам от текущего раста (по крайней мере, пример с сервером написан без асинков). Но для тех же плюсов тоже нет единой книги, которая написана человеческим языком и охватывает все самые последние возможности языка и обновляется с выходом каждой новой версии.

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

    При этом, стандартная документация раста, книга, пишущаяся самими авторами и вообще вся стандартная инфраструктура на голову выше, чем во всех других современных языках.

     
     
  • 3.53, Аноним (51), 14:54, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > для тех
    > же плюсов тоже нет единой книги, которая написана человеческим языком и
    > охватывает все самые последние возможности языка и обновляется с выходом каждой
    > новой версии.

    Книга называется черновик стандарта.

     
  • 3.126, Аноним (125), 03:09, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > написан без асинков

    Асинк стабилизировали буквально только что, а появление асинк конструкций не означает ни исчезание блокирующих ари, ни наличие асинхронных в стд. Всю канитель с асинком сейчас описывают в отдельной async book

     
  • 2.40, Аноним (44), 13:32, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Просто чтобы ты был в курсе get started и документации больше чем достаточно для любого языка. Сейчас так то 2019 год.

    Ты либо очень старый либо очень молодой.

     
  • 2.103, Sgt. Gram (?), 21:26, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Книга которая у них на сайте отражает последние изменения в языке? Если нет то как учить этот Rust?

    Выучи для начала пунктуацию.

     
     
  • 3.107, Аноним (105), 21:53, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сам ты плохой
     

  • 1.39, Аноним (38), 13:27, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну что, поздравляю всех, асинки в стандарте!

    Что там со стабилизацией токио с поддержкой асинков?

     
     
  • 2.46, Аноним84701 (ok), 13:45, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Кроме библиотеки Stylo для css. Библиотеки Карл!

    А пацаны-то как, в курсе?
    https://www.rust-lang.org/production/users


     
     
  • 3.50, Аноним (44), 14:47, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Какие-то стремнинные поделки у которых нет применения за пределами компаний которые их создали. Причем если копнуть глубже то сразу понятно что там ссылка на какую-то мало вменяемую статью как у Dropbox. Раст они уже давно не применяют. Или ссылка на гитхаб с двумя звездами от создателей. У некоторых проект на ноджс где они там раст применяют не понятно на зато в ссылку их добавили.

    Но зато фанатики молятся на эту ссылку как на иконостас не зависимо что на самом деле делают с растом эти компании и делают ли.

     
     
  • 4.57, Аноним84701 (ok), 15:59, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Какое-то стремное сруливание с изначального удаленного нету в продакшене Кс... большой текст свёрнут, показать
     
     
  • 5.59, Аноним (59), 17:13, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты хотя бы адекватный не бросаешься всякими синтетическими тестами.

    Надеюсь не надо объяснять что твои ссылки это поделки которые написаны на расте просто чтобы хоть что-то написать на расте. Тот же Media-io суммарно все 16 проектов на расте получили 48 звезд. Остальное и комментировать смешно. Ты просто подтвердил мои слова своими ссылкам.

    Твой припек вполне объясним тем что фанатизм не приводит ни к чему хорошему.

     
     
  • 6.68, Аноним84701 (ok), 18:50, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > это поделки которые
    > Тот же Media-io суммарно все 16 проектов на расте получили 48 звезд.
    > Остальное и комментировать смешно.

    Какая аргументативная аргументация o_O

    > Надеюсь не надо объяснять что
    > Ты просто подтвердил мои слова своими ссылкам.

    Для полноты не хватает "И вообще, это знают все!1" (с)

    > Твой припек вполне объясним тем что фанатизм не приводит ни к чему хорошему.

    В общем, как и ожидалось -- анонимная, скучная, детсадовская демагогия, минусики и полудетсадовские попытки съехать на ad hominem/хамство (которое те, кто опоздали родиться, частенько путают с "крутым троллингом").  Нормальных аргументов от анонимов ведь фиг дождешся -- для этого же хоть немного матчасть знать надо.

     
     
  • 7.74, burjui (ok), 19:45, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальные аргументы от анонимов на этом ресурсе - это ты хорошо пошутил. Тут каждый второй писал на C++ лабы в своей шараге и считает своим долгом блеснуть своим "опытом разработки" и облить помоями Rust, потому что последние две извилины разгладились на понятиях ownership и borrowing, а синтаксис вызывает панические атаки. Элита computer science, короче.
     
     
  • 8.96, Аноним (96), 15:12, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чувак ты даже никуда не поступил и ни одной строчки на Расте не написал, но зато... текст свёрнут, показать
     
     
  • 9.109, burjui (ok), 03:01, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    1 Я поступал в 2 разных ВУЗа, из первого вылетел, из второго ушёл сам по личным... текст свёрнут, показать
     
  • 8.102, SOska (?), 21:17, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно пример твоих супер поднлок на расте и сплюсах ... текст свёрнут, показать
     
  • 7.97, Аноним (96), 15:16, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну конечно аргументация Растобоев с их ссылкой на какой-то очень сомнительный список это верх аргументированности. И ведь даже не могут признать что язык их не нужен. Все пытаются выжать хоть что-то.
     
  • 2.77, souryogurt (ok), 20:38, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну кстати, много же раз уже обсуждались эти async функции в других языках. Эта фишка распространяется по коду как вирус, стоит только добавить одну такую функцию и все.. приходится все функции которые ее вызывают тоже делать async. Сам пробовал в питоне это. Исправте если ошибаюсь, как раз поэтому async и не внедрили в C++. Или в раст этот минус как-то обошли?
     
     
  • 3.79, red75prim (?), 20:53, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    async функция в расте возвращает структуру, которая реализует трейт Future, то есть реализует асинхронное вычисление. Из обычной функции можно вызвать асинхронную, получить эту структуру и что-то с нею сделать. Например, запустить на выполнение не ожидая результата (только если используется многопоточный экзекьютор), или запустить на выполнение и заблокироваться до получения результата.
     
  • 3.92, Forth (ok), 12:06, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    На питоне не пробовал, но особой проблемы не вижу. На Java много писал асинхронного кода, вполне успешно смешивается тот и другой подход.
    Если вызываемый код не будет вставать на ожидании ресурса или не делает долгих вычислений, то конечно его можно вызвать синхронно.
     
  • 3.128, Аноним (127), 03:13, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кому надо async в c++ - или берёт буст или стороннюю библиотеку. В итоге всё равно получается коллбачная лапша, но в стандарте такого нет.
     

  • 1.54, Аноним (-), 15:23, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все нравится кроме того, что компилер оставляет неиспользуемые функции и статические строки, на которые нет ссылок в коде.
    Ответ хоть от кого-нибудь почему компилер так делает мне получить не удалось. Вот пример https://godbolt.org/z/8AE_S_
    Получить бинарник в 60мб не такая уж недостижимая цель для раста. При этом до функциональности приложения, написанного с использванием какого-нибудь Electron'а, довольно далеко.
     
     
  • 2.55, Аноним (55), 15:32, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати жаба компилируется.

    https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md

    оракл видимо собрался го закопать

     
  • 2.56, red75prim (?), 15:55, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что функция в публичном интерфейсе как член трейта. Выкидывать функции, которые могут быть вызваны, но не вызываются, - задача линкера. Собирайте с LTO.
     
     
  • 3.58, Аноним (51), 17:00, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Статические строки разве экспортируются?
     
  • 3.61, Аноним (-), 17:32, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Странно, со своим компилятором, но уже новой версии, не могу воспроизвести то поведение. (С лто или без)
    >Потому что функция в публичном интерфейсе

    Можно подробнее? trait же не pub.

     
     
  • 4.131, 11 (?), 21:33, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Trait всегда pub
     
     
  • 5.133, Аноним (-), 11:20, 13/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тут написано обратное https://doc.rust-lang.org/reference/visibility-and-privacy.html
     
  • 2.62, Аноним (62), 17:53, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gist=db1b
    А вот тут почему-то всё вырезается, даже не доходя до LLVM IR.
     
     
  • 3.64, Аноним (-), 18:01, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я отписал выше уже. На тот момент (где-то пару месяцев назад) мне никакими средствами неудавалось добиться удаления непубличного, неиспользуемого кода/данных в найтли.
     
  • 3.65, Аноним (-), 18:04, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Эта версия видимо просит выдать листинг сам компилятор. Через cargo rustc --release -- --emit asm
     

  • 1.81, Аноним (81), 21:06, 09/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я слышу хруст!
    Интересно, если даже разрабы на плюсах говорят, что до конца в них не разбираются, то сколько же человек понимают сабж?
     
     
  • 2.85, анонимчик (?), 23:08, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    это из-за неуместных сокращений, заглавных букв в библиотечных функциях и mut
     
  • 2.90, Junior frontend developer (?), 09:26, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда вы беретесь, не пойму? Один из самых красивых и приятных языков, что сейчас существует.
     
     
  • 3.101, анонимчик (?), 18:47, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    просто у вас нет вкуса. кому-то и кобыла невеста.
     
     
  • 4.110, Junior frontend developer (?), 03:36, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > просто у вас нет вкуса. кому-то и кобыла невеста.

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

     
     
  • 5.134, Аноним (-), 12:35, 13/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >точно знаю, что этот наиболее приятный,

    А Питон?

     

  • 1.88, Аноним (-), 05:59, 10/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос знатокам, как в эмбеде идут дела и Раста?
     
     
  • 2.93, nelson (??), 12:10, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Как-то так: )
    http://forum.easyelectronics.ru/viewtopic.php?f=56&t=38543#
    http://forum.easyelectronics.ru/viewtopic.php?f=56&t=37958
     
  • 2.94, Forth (ok), 12:12, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть группа embedded rust, которая занимается как раз этим.
    Пользуюсь их наработками по портам для cortex m4 и рядом библиотек со статическими коллекциями и генератором кода из svd.
    Пока проблемы не ловил. Отладка работает, через openocd в основном.
     

  • 1.95, Гражданин (?), 13:22, 10/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего только не придумаешь, чтобы не учить Free Pascal.
     
     
  • 2.100, Anonymoustus (ok), 17:39, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Чего только не придумаешь, чтобы не учить Free Pascal.

    Весьма забавно, что по уровню религиозного рвения и сектантской нетерпимости хрусты на одном уровне с перепончатыми. :)

    А один так и вовсе бегает и нервно подчищает нехрустоугодные комментарии.

    «Отличный» язычок, раз у него такие невменяемые фанаты. :)

     
     
  • 3.112, Аноним (112), 10:35, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > «Отличный» язычок, раз у него такие невменяемые фанаты. :)

    Самые невменяемые фанаты у С. Всё что не С - по умолчанию говно

     
     
  • 4.124, Аноним (124), 21:01, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А, ещё вы жутко брехливы, вот и тут - почему же по умолчанию Вовсе нетак... большой текст свёрнут, показать
     
     
  • 5.129, Аноним (112), 14:42, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так вроде игры и делают на С# и сложное на С++. Почему так исход у историй?
     
     
  • 6.130, Аноним (130), 19:02, 12/11/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1 Компания очень маленькая, отечественная, т е полностью отечественная - все фа... большой текст свёрнут, показать
     
  • 3.114, Аноним (116), 14:06, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >А один так и вовсе бегает и нервно подчищает нехрустоугодные комментарии.

    Миша фанат Раста? Даланавам, лукавити.

     
     
  • 4.123, Anonymoustus (ok), 19:53, 11/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>А один так и вовсе бегает и нервно подчищает нехрустоугодные комментарии.
    > Миша фанат Раста? Даланавам, лукавити.

    Нет, я говорю про микроба под ником Forth. Фанатично трёт нехрустоугодные высказывания.

     
  • 2.108, Аноним (105), 21:55, 10/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    О спасибо за напоминание - пошел почитаю. Интересно было сделать на нем список =)
     

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



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

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