Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Alexander Andreev
@andreevlex
надо их посмотреть =)
Alexander Andreev
@andreevlex
/all а кто следит за переводом? https://github.com/ruRust/rust_book_2ed/pulls
Ilya Bogdanov
@vitvakatu
@andreevlex если есть желание - проведи ревью, на выходных сам гляну, но в будние дни у меня времени нет
Vitaly
@Virtuos86
@andreevlex чтобы кастануть всех, надо писать "/ @ all", без пробелов только, но так делать лучше при реальной необходимости
Alexander Andreev
@andreevlex
напомните, процесс ревью перевода? Вот например с переводами второго издания растбука, там много пр весят.
Alexander Andreev
@andreevlex
я вот о чем, я проверил почти все, но прав на слияние у меня нет, кто нибудь уделите полчаса времени
Ilya Bogdanov
@vitvakatu
@andreevlex добавил тебе права, кое-что замержил
Alexander Andreev
@andreevlex
@vitvakatu там ещё мой пр есть, посмотришь?
Ilya Bogdanov
@vitvakatu
да, я посмотрел
Alexander Andreev
@andreevlex
остались с конфликтами PR
Eugene Sobolev
@Teslamandev
Гляньте пиар как будет время ruRust/rust_book_2ed#70
Eugene Sobolev
@Teslamandev
Как лучше перевести trait objects, "типажи-объекты", "типажные объекты" или как-то иначе?
Michael Pankov
@mkpankov
Eugene Sobolev
@Teslamandev
А, это я читал. Просто не нравится как оно звучит.
Eugene Sobolev
@Teslamandev
@andreevlex привет, глянь pr ruRust/rust_book_2ed#74
Alexander Andreev
@andreevlex
@Teslamandev посмотрел
Eugene Sobolev
@Teslamandev
Ага, видел
Alexander Andreev
@andreevlex
ruRust/rust_book_2ed#68 @vitvakatu глянь исправление...
Ivan
@imbahter
https://rustbook.kinoher.ml/ch19-01-unsafe-rust.html
3 абзац, последнее предложение.
Нам нужен реализовать это.
Alexander Andreev
@andreevlex
@imbahter PR? =)
Alexander Andreev
@andreevlex
кто нибудь заметил что https://rustbook.kinoher.ml/ отрендеренная книга потеряла часть оформления? svg иконки пропали... Такое один раз было когда стили не подтягивались в RustByExample
Ivan
@imbahter
@andreevlex нашел ошибку, решил сообщить.
Alexander Andreev
@andreevlex
@imbahter какую ошибку?
sergeidiatlov
@sergeidiatlov
Как_работают_функции_-_The_Rust_Programming_Language.png
Добрый день, начал изучать этот язык и решил помочь с переводом. Кажется тут есть ошибка.
Functions_-_The_Rust_Programming_Language.png
Я никогда этим не занимался и не особо в курсе процессов, поэтому не пинайте если, что)
+ мне кажется тут Statement лучше перевести не как "оператор", а как "утверждение". В тексте со скрина как раз речь идет о различии "утверждения" и "выражения".
sergeidiatlov
@sergeidiatlov
А всё сорри, разобрался, словарик терминов тоже нашел.
Istratov Dmitrii
@funkill
@sergeidiatlov привет. Мы с переводами переместились в телеграм:
t.me/rustlang_ru_translations
TRAMPAMPUSHA
@trampampusha_twitter
Здравствуйте.
TRAMPAMPUSHA
@trampampusha_twitter
Скажите, а будет ли какая нормальная оболочка или так и придётся работать в стиле DOS 80-х годов прошлого века?
Извиняюсь, не в ту тему написал.
anisimov
@likonthrop
https://doc.rust-lang.ru/book/ch17-01-what-is-oo.html
в сноске о полиморфизме, дублирование текста
image.png
Andréy Lesnikóv
@ozkriff
@likonthrop я не уверен что кто-то из текущих переводчиков читает гиттер. лучше кидай в https://t.me/rustlang_ru_translations или даже сразу PR в https://github.com/rust-lang-ru/book
Sergei Oskretkov
@Soskretkov

Здравствуйте! Помогите понять сиротское правило (orphan rule), о котором речь идет тут:
https://doc.rust-lang.ru/book/ch10-02-traits.html

В частности тут речь идет о сложности, которая дословно образуется так: "Без этого правила два крейта могли бы реализовать один типаж для одинакового типа и Rust не будет знать, какой реализацией пользоваться".

Я ищу объяснений проще, лучше на пальцах и лучше пальцев одной руки, по возможности.
Я в своем мозгу представил сложность так: оба крейта используют одинаковый тип и этот тип, видимо, как минимум для одного из этих крейтов является не локальным. А может для обоих крейтов этот тип внешний (из описания не ясно).
В одном из этих двух крейтов к внешнему для него типу захотели прикрутить типаж из второго крейта. Понятно что возник внешний тип и внешний типаж. И сиротское правило это не благословляет. Но путаница не ясна.
Ведь кажется что при реализации типажа ошибка исключена. Будет четко стоять что-то типа "use (...путь к крейту...)::{Summary};", что в прозрачной форме как бы говорит, что второй крейт хочет прикрутить к внешнему типу конкретно этот типаж (пусть и внешний) и он указан вроде бы как четко, без путаницы.

Что я упускаю? Мой пример почему-то не иллюстрирует проблемы... и я не могу ее понять.

1 reply
Andréy Lesnikóv
@ozkriff
при использовании-то как понять какую из конфликтующих реализаций надо брать?
Sergei Oskretkov
@Soskretkov
А между чем и чем конфликт? Один тип, один типаж. Оба не локальные. Но как получается, что "...Rust не будет знать, какой реализацией пользоваться" мне не ясно. Реализация же всего одна
Sergei Oskretkov
@Soskretkov
Каждый крейт реализовал свой типаж, у каждого крейта типаж всего один, у компилятора нет конфликтующих выборов
Или я примером своим исказил случай о чем речь идет в книге?
Я не могу хоть один сценарий конфликта добыть
Andréy Lesnikóv
@ozkriff

я, если честно, не могу толком твой пример выше распарсить.
в моей картине мира пример потенциальных сиротских неприятностей выглядит так:

  • есть крейт a с типажом trait A { fn a(&self) -> u8; }
  • есть крейт b с типом struct B;
  • есть крейт c, который реализовал сироту impl A for B { fn a(&self) -> u8 { 0 } }
  • есть крейт d, который реализовал сироту impl A for B { fn a(&self) -> u8 { 1 } }

если в итоговом проекте окажутеся c и d крейты, то при вызове B.a() появляется неоднозначность какая из реализаций должна использоваться и в языке нет способа ее разрешить.

более того, этот B.a() вызов может быть не в коде непосредственного нашего проекта, а где-то в наших зависимостях с crates.io - тогда даже если бы в языке был способ выбирать реализацию, у нас не было бы возможности просто так взять и поправить этот код.
Sergei Oskretkov
@Soskretkov
Спасибо!
Sergei Oskretkov
@Soskretkov
Снимок.PNG
Как запустить обратную трассировку? "RUST_BACKTRACE=1 cargo run" не работает. Windows 10
(требуется чтобы разобрать пример с обратной трассировкой растбука тут:
https://doc.rust-lang.ru/book/ch09-01-unrecoverable-errors-with-panic.html
sobaka_v_kepke
@chabapok_twitter
под линуксом так будет работать. В винде надо переменную окружения устанавливать