Maxim
спасибо, что отвечаете на мои тупые вопросы
andrei
clone это норма или нет?
Судзумия
clone это норма или нет?
Если не беспокоит трата памяти и быстродействие, то норма
Судзумия
Для новичка лучше клоун делать, чем париться с борроушипами
Судзумия
спасибо
Держи на всякий случай https://is.gd/y7o8yk
Maxim
Если не беспокоит трата памяти и быстродействие, то норма
а если, например, функция принимает структуру, а не референс, то как с помощью борровинга можно передать ее туда, чтоб потом дальше ей пользоваться?
Maxim
или тут только clone?
Судзумия
Только clone или Copy
Meowbe/BSD-2-Clause
Если не беспокоит трата памяти и быстродействие, то норма
Думаю больщинство клонов оптимизатор выкидывает
Судзумия
О, я так не думаю
Судзумия
Там даже мувы не оптимизируются
Судзумия
а действительно передвигается с места на место
Meowbe/BSD-2-Clause
С -O3 ?
Meowbe/BSD-2-Clause
Если не компилятор, то ллвм должен бы оптимизировать это
Meowbe/BSD-2-Clause
Можно попробовать прогнать с release и потом через opt -O3
Loyd
Там даже мувы не оптимизируются
В голову приходит только один вариант оптимизации --- хранить передаваемые структуры в красной зоне
Loyd
Ибо хранить сразу в стекфрейме передаваемой функции тупо не всегда можно, да и сложный анализ
Loyd
Если не компилятор, то ллвм должен бы оптимизировать это
Ну а как он оптимизировать это должен? Единственный способ не мувить --- разместить в памяти, доступной и одной и данной функции
Loyd
Ну ладно, в тривиальных случаях вроде вполне можно было бы
Sergey
Подскажите, как правильно писать в stdout, чтобы потом можно было read_line в строку?
Sergey
stdout().write() не хочет писать ничего =(
Sergey
print!() тоже
Sergey
почему-то все question/answer выводятся после цикла по вопросам
Sergey
а оказывается надо .flush() вызывать
Sergey
ништяк
Sergey
ну хоть понимать начал rust
Loyd
Не в расте дело, везде такое поведение: stdout буферизуется (stderr нет). Вывод по \n, flush-у или когда буфер заполнится, либо когда буфер выключен (setvbuf)
Loyd
Ну это с точки зрения поведения. Так-то раст использует write вместо fwrite, а буферную логику реализует сам
Filipp
https://twitter.com/alephtwo/status/860665238793986048
Filipp
скриншот рассмотри
Filipp
там раст
Kerrigan
сишку вставлять уже не модно
ivan
мож я слепой, но где вы там чего разглядели?
Kerrigan
на стенах
Tomato
ivan
дык я на стены втыкаю уже минут пять
Sherzod
Давно не было анимешных стикеров
Sherzod
Уже запретили?
ivan
блин, не, у меня в телеге похуже качество(
Kerrigan
Уже запретили?
не приходилось пока
Tomato
да тоже в телеге не видел. в твиттере норм качество
Sherzod
Sherzod
Sherzod
Sergey
Кто-нибудь запускал RedoxOS?
Max
(а зачем? 🌚)
Sergey
На чём пишешь код? anonymous poll macOS (native) – 140 👍👍👍👍👍👍👍 38% Linux (ubuntu/debian/arch/etc) – 130 👍👍👍👍👍👍👍 35% Windows 7/8/10 – 83 👍👍👍👍 22% hackintosh – 12 👍 3% other – 8 ▫️ 2% 👥 373 people voted so far. Poll closed.
分解物質
интересно как они видят своё творение в будующем
Max
Его уже можно без QEMU запустить?
Loo
https://github.com/Ameobea/tickgrinder
Kerrigan
интересно, что на это мистер алкотрейдер скажет
Kerrigan
кто там в жж постоянно постил код на расте про HFT
պլհկ
Скажет что хуйня, инфа 100%
Tomato
цпп 😑
Tomato
Kerrigan
это что за мак с 32гигами?
Sherzod
Может 24?
Tomato
своп же. всего 16
Tomato
мбп 2015
Meowbe/BSD-2-Clause
Память течёёёт
Loyd
своп же. всего 16
Зачем тебе своп?
Tomato
да как-то даже не задумывался. есть и есть
分解物質
Память течёёёт
надо было писать на rust
分解物質
надо всё C++ переписать на Rust
Loyd
Надо кафку на раст переписать
Maxim
и жвм
Maxim
тогда кафку не придется переписывать
Loyd
)
Evgenii
I Broke Rust's Package Manager for Windows Users (Score: 100+) Link: http://j.mp/2qeK2aX
分解物質
I Broke Rust's Package Manager for Windows Users (Score: 100+) Link: http://j.mp/2qeK2aX
> I Broke Rust's Package Manager for Windows Users а потом в статье пишет что это на самом деле это винда поломана
分解物質
I Broke Rust's Package Manager for Windows Users (Score: 100+) Link: http://j.mp/2qeK2aX
а ведь это можно использовать для DoS атак на виндософт
Maxim
такой вопрос: вот у меня есть энум с типами, по которому мне все время нужно сравнивать и, в случае сопоставления с одним из типов, совершать какие-то действия, каждый раз действия и типы разные. Можно ли как-то сделать какую-то обобщенную функию, которая эту проверку будет проводить и в случае сопоставления будет выполнять действия, которое я прокину ей лямбдой? Хочется что-то такое: fn read_value<T, R, F>(v: T, f: F) -> Result<(), &'static str> where F: Fn(R) -> Result<(), &'static str> { match v { T(ref mut value) => f(value), _ => Err(TYPE_MISSMATCH_ERROR) } }
Maxim
понимаю, что вот прям такое невозможно, но вдруг есть какие-то пути обхода?
Судзумия
Вроде можно