Nikita
а так Rc+mark'n'sweep или как там оно
Mykyta
бороучекер он про data safety, а не про то когда за тобой убрать надо
только ничего не мешает мне использовать тот же подход в гошечке/жаве/ватэва и прекрасно жить
Mykyta
ну да, компилятор по рукам бить не будет. но тогда уже можно и хаскель с идрисом затащить
Nikita
только ничего не мешает мне использовать тот же подход в гошечке/жаве/ватэва и прекрасно жить
тебе компилятор в глаз не нассыт в гошечке, когда ты в разных горутинах одну переменную шатаешь
Mykyta
тебе компилятор в глаз не нассыт в гошечке, когда ты в разных горутинах одну переменную шатаешь
если мне это реально дорого будет править (а не фигак-фигак и задеплоили), я возьму хаскель вместо го
Nikita
нивапрос, если твоя память условно безгранична
Mykyta
у раста самый смак в отсутствии accidental complexity от гц и управление памятью без footguns. монадки я могу и в хаскеле пописать
Mykyta
нивапрос, если твоя память условно безгранична
память в расте тоже может утекать при неаккуратном использовании
123
Воспользовался Synaptic`ом(Debian 9), установил rust, но cargo недоступен. ЧЯДНТ?
պլհկ
А пакета карго там нет?
պլհկ
Вообще рекомендуемый способ установки - rustup.rs
Маjко
И в репах может быть пакет rustup
Mykyta
в питоне тоже отдельно pip ставится, только в ноде встроен пакетный менеджер afaik
123
в репозитории cargo официальном сказано, что если я ставлю rustc, то и cargo идет сразу вместе
123
учебы ради
Mykyta
в репозитории cargo официальном сказано, что если я ставлю rustc, то и cargo идет сразу вместе
не уверен, что ментейнеры дебиановой репы придерживаются такого же правила
trfc
А почему ты пользуешься дебианом?
а чем пользоваться надо?
Mykyta
https://packages.debian.org/stretch/amd64/rustc/filelist
Evgεny
удоли дебиановский пакет, сделай как тут
Evgεny
Вообще рекомендуемый способ установки - rustup.rs
Evgεny
а чем пользоваться надо?
чем нравится, конечно, но зачем есть просрочку, если можно не есть ее
պլհկ
Дистрибутивы обсуждайте в офтопе плз
Mykyta
как хорошо что не подписан на офтоп :trollface:
123
да, спасибо, понял в чем ошибка
Маjко
В jerk
123
да
Alex
Товарищи, #Вопрос : Как описать абстрактно все интервалы (Range, RangeTo, From,..) ? Например тип поля в структуре чтоб был любым типом интервала или аналогично тип аргумента функции. Желательно static dispatch, но это как звёзды сойдутся…
Alex
Посмотрел как сделали std::ops::Range<T>.contains(&T) и чёт не понял этот "каст": <Self as RangeBounds<Idx>>::contains(self, item)
Alex
Посмотрел как написан trait RangeBounds. Офигенно. Вот его и возьму. Правда это пока только nightly feature.
Alex
Вот и поговорили. Спасибо.
Anton
Та не за что)
Berkus
будут, но не скоро
не будут, токио на 0.3 переедет
Berkus
читайте чат что-ли, для чего это все пишется то по 17 раз
Денис
всё не запинишь, всё не прочитаешь
Alexander
Вопрос системный. Например есть закеширлванный в дисковый кеш файл и в него делаешь аппен. Вопрос - он будет из Кеша выпадать или как-то блоками в кеше будет и будет дочитываться?
Alexander
При чтении потом.
Berkus
на запись обычно WriteBack cache стоит, кэшируется страницами
Berkus
ну если он уже в кэше, не надо ничего дочитывать
Alexander
Ну т.е. я вообще не очень понимаю что при аппенде будет в кеше.
Berkus
данные которые пишутся в файл
Berkus
конкретные детали кэширования зависят от ОС
Alex
макросом делают, типа https://github.com/libpnet/libpnet/blob/c14eea7b2494e36623bcaeecc36e2ffded705e05/pnet_macros_support/src/packet.rs#L111-L115
Спасибо. Я так понимаю хорошим тоном будет завернуть в enum все типы интервалов и реализовать для него необходимые трейты. Так?
Alexander
Т.е. потенциально тут вообще диск будет в фоне только участвовать? Из write Кеша в read класться?
Alex
#Вопрос Как узнать какие std/core трейты имеют реализацию для определённой структуры? Проще говоря даже так - узнать для каких трейтов есть реализация для {этой} заданной структуры?
Berkus
Т.е. потенциально тут вообще диск будет в фоне только участвовать? Из write Кеша в read класться?
там один кэш, на запись и на чтение. обычно. опять же, зависит от ОС.
Alexander
Надо бы почитать.
Berkus
Надо бы почитать.
если ты не бенчмаркаешь фс, то в общем ничего особенного делать не надо
Alexander
Ну я именно хочу понять как читать и сразу писать и быстро.
Alex
(Option<usize>, Option<usize>) :)
Ну прикольно. И описать into в RangeXXX. А потом паниковать на каждом шагу :)
Alexander
mmap
Просто получается, теоретически, если даже append из кеша файл не выкидывает, то в файл можно аппендить и читать данные практически как из памяти - ничего изобретать не надо.
Alexander
А том плане что аппендить в конец файла постоянно и оттуда же читать.
Berkus
зачем оттуда читать если ты только что записал, не совсем понятно
Berkus
у тебя эти же данные на руках
Alexander
Ты записал 10 записей, а прочитать надо может не 10, а 20 последних
Alexander
Для того чтоб не изобретать параллельно кеш в памяти и держать там данные, если дисковый и так с этим может (может?) справиться.
Антон
(Option<usize>, Option<usize>) :)
Option<(Option<usize>, Option<usize>)>
Антон
Потому что Range может быть неограниченным
Денис
Потому что Range может быть неограниченным
надо тогда контракт делать, дескать, None — неограниченное множество, а `Some((None, None))` — пустое
Alexander
Ну я просто хотел спросить может кто знает.
Денис
короче хреновый вариант, как ни посмотри )
Alexander
я бы сказал, что дело в гарантиях, которые тебе нужны
Ну понимание того как работает даст понимание гарантий :) я надеюсь.