Как стать автором
Обновить

Rust 1.70.0: протокол ''sparse'' для crates.io, OnceCell и OnceLock, лейблы отладочной информации

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 4.3K
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 24

Комментарии 24

все хорошо, но, как оказалось, сбилдить статически что-либо с зависимостями не так-то просто.

Ещё более "не так то просто" собрать zero-time приложение. То, что используется в микроконтроллерах...
Не пробовал, но с трудом представляю, как на "ржавом" писать драйвера для линукс...

zero-time это без core? Для чего и зачем?

Для ATiny или чего-то такого лучше уж сразу на ассемблере писать. Да и более жирные AVR - скорее игрушки для мазохистов (даже не как что-то плохое). Для адекватных микроконтроллеров без core что-то адекватное писать смысла нет. В некотором смысле core изначально рассчитана на подобное использование.

Вообще embedded предполагает некоторые дополнительные знания касательно инструментов. Как минимум нужно иметь специальный тулчейн для таргета и понимание процесса сборки бинарника. И в этом смысле rust ничем не отличается от других языков.

На сколько я знаю, единственный серьезный проблемный момент - нет простого способа писать panic-free код на rust.

а необходимость статического билда несерьезный момент?) заметили, что когда человек спрашивает как сделать что-либо и люди не знают -- они начинают рассказывать что ему это не нужно?) это же как в анекдоте "доктор, когда я делаю так мне больно -- не делайте так"

я вот хочу статический билд с использованием tch-rs -- пока "нивкакую"

а необходимость статического билда несерьезный момент?

я вот хочу статический билд с использованием tch-rs -- пока "нивкакую"

А это точно проблема Rust? Выглядит как проблема конкретной либы. Возможно стоит прочитать README или типа того. Ну или спросить этих торчков-наркоманов, что они там намудрили.

В каком смысле статический билд? Под контроллер же by design собирается именно статический бинарник.

На самом деле нет. Просто обычно вы не очень хотите делать свой собственный линковщик с нуля.

это буквально биндинг libtorch, как вы его себе статическим представляете?

Так если собрать саму libtorch статически, то и все будет статикой. Это все не проблема раста, это как раз вопросы к скриптам сборки tch-rs, просто спросите и них.

Если вам для написания программ на Rust нужен отладчик, то вы пишете на нём неправильно /s

Перед написанием полезно потренироваться :)

Использую Clion, доволен.

Он же платный, неохота покупать, пока нет задачи на нём профессионально писать. А в IntellliJ отладчика нет.

Jetbrains раздают бесплатные лицензии на свои продукты разработчикам открытого софта. Но вообще - вы спросили в чём нормально работать, я ответил.

Это действительно странно. Пару раз использовал отладчик чтобы понять где логическая ошибка и еще ни разу ничего не валилось.

А не могли бы вы показать эти строчки?

fn main() {
    let guess = String::from("test\r\n");

    let guess = guess.trim();// causes LLDB to crash
    println!("{}", guess);
}

После нажатия кнопки Debug VS Code валится. Если указанную строчку закомментировать, всё работает.

Спасибо, правда повторить я не смог lldb и gdb (оба cli) отработали нормально

У вас какая версия? Может, уже поправили?

Мб как-то не так настроил?! Я дебажу игровую либу, работает как часы

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

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории