Loo
он вас траллит посоны
Loo
астанавитесь
Anonymous
крутые аналогии
Anonymous
kotlin это basically java с исправлениями многих ужасных моментов
Светомеч
Во-первых, там используется save-analysis, т.е. сначала проект компилится полностью, часть внутренних структур данных компилятора дампается, и по ним уже RLS лазит. Что тут плохого - проект нужно полностью перекомпилировать при любом изменении, чтоб RLS'ом получить актуальные данные, и это охренеть как долго. Мб инкрементальная компиляция поможет, но это и есть одно из тех самых "изменений архитектуры", что необходимы RLS. И пилят это довольно долго. И все равно это будет медленно, пока save-analysis не отпилят полностью.
Во-вторых, компилятор очень плохо работает с кодом, который не компилится. Если поломан синтакисис - то вообще giving up. Это причина, почему в RLS комплишен до сих пор через racer, ибо комплишн - это почти всегда "поломанный синтаксис".
У нас с самого начала все пилится с учетом IDE'шных требований. Парсер умеет восстанавливаться на поломанном синтаксисе, типы нормально выводятся на незавершенных выражениях, и т.п. Ну и перфоманс - компилится только открытая в IDE вкладка. Зачем весь проект компилить? Ну и подобным подходам уже с десяток лет, в остальных JetBrains IDE примерно так же все работает. И практически для всех языков мы заново компилятор писали. Исключения я пока 2 знаю - это, во-первых, kotlin (для которого мы сами компилятор и писали, лол), во-вторых C#. С C# близко не знаком, хз как так вышло
У шарпа няшный опенсорсный roslyn
Alexander
Блин, телеграм с одним чатом отнимает на общение больше времени, чем гиттер с полусотней - как вы здесь выживаете? 😊
Alex
Alexander
Хех, идея фикс "прочитать весь интернет" накрывается медным тазом.
Loo
Loo
время потраченное на чтение чата
Loo
себя окупает
Oleg
Как хокку прочитал
Vlad
Loo
https://github.com/rickyhan/tectonic
Alexander
https://github.com/rickyhan/tectonic
«Stores one row of data in 13 bytes» - интересно, как они дошли до такой компрессии.
Впрочем, я сильно не парился, у меня 24 байта с копейками на одну запись и, если когда-нибудь станет сильно много, пожму в .tgz или .tbz 😊
Alexander
Ага, как раз смотрю ))
Vlad
А это кому таргетится? Кто-то биржу пилит?
Alexander
Скорее тем, кто торгует
Alexander
Этих устраивают целочисленные таймстампы и лимит в 255 для dseq. При этом по целому байту выделили на булевы значения, хотя их можно запаковать в знак цены и объёма, всё-равно не используется.
Alexander
Alexander
Ха, обновил лису, упала вкладка. Обновил вкладку - упала лиса.
Как мозилловцы заковыристо форсят перезапуск браузера )))
Loo
Loo
прям вообще топчик
Loo
скинь ссыль на которой упала вкладка
Alexander
В целом да, всё работает нормально. Падение вызвало именно обновление, видимо он пытается с какой-то .so-шкой работать, а тут такой облом.
Loo
аа. понятно
Loo
о мне тоже обнова прилетела. ща чекнем.
Loo
а не. не чекнем. не хочу в обход аура ставить
Alexander
Если всё ещё интересен адрес вкладки: https://www.tradingview.com/chart/JYOv1sq7/
Alexander
Хех, телеграм не умеет markdown
Как вы тут выживаете? 😊
Alexander
Пока только обратные кавычки видел, но даже синтаксисы языков не поддерживает в блочных
Alexander
Ну вот ещё полужирный и курсив, как вижу, можно добавить в список по итогу
Alexander
> цитаты великих
Ладно, цитаты итак пойдёт, в русском есть соответствующие «знаки препинания» 😊
Loo
Anton
Anton
а это на файл
Нави
Всем, кто вчера вечером пытался помочь...
Указать тип канала в функции следует так:
fn func(my_recv: mpsc::Receiver<i32>) {
}
где i32 - тип данных, которые получает процесс в моём случае.
Нави
Всего ведь на всего... )))
Маjко
И вскод с рлс бы подсветил
Vladimir
Да ну, правда шоли?
Vladimir
тоесть Receiver<i32> какой нибудь
Vladimir
Всем, кто вчера вечером пытался помочь...
Указать тип канала в функции следует так:
fn func(my_recv: mpsc::Receiver<i32>) {
}
где i32 - тип данных, которые получает процесс в моём случае.
Anton
Не, magic values обычно испльзуются как сигнатуры файлов
Anton
я спросонья решил что там строку описывают
Anton
Удивился, зачем в каждой записи
Anton
потом разул глаза
Anton
большинство приложений в линухе корректно обрабатывают когда например png c расширением jpg
Vladimir
Anonymous
а в расте есть какое-нибудь встроенное решение для перевода A<B<C>> в B<A<C>>?
Anonymous
или эт без хкт нельзя, но у меня A = Vec, B = Result
Vladimir
Vladimir
Но есть From для которого можно реализовать
Vladimir
Кстати From<Vec<Result>> for Result<Vec> был
Anonymous
где
Vladimir
Ну или там вместо века итератор
Anonymous
не нахожу
Vladimir
вот
Vladimir
impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>
where
V: FromIterator<A>,
Vladimir
нашел
Vladimir
fn main () {
let mut v: Vec<Result<i32,()>> = vec![Ok(1), Ok(2)];
let v2:Result<Vec<i32>, ()> = v.iter().cloned().collect();
v.push(Err(()));
let v3:Result<Vec<i32>, ()> = v.iter().cloned().collect();
println!("{:?}, {:?}", v2, v3);
}
Ok([1, 2]), Err(())
Loo
https://github.com/Property404/fetlang
Loo
https://prnt.sc/gukzpd
Loo
пам пааам паааам
Loo
хы хы
Berkus
чуваки, вопрос
в расте есть какие-то каноничные методы или либы для observables или pubsub? что-то в стиле сигналов-слотов кутешных или Rx?
Berkus
внутрипроцессно надо если что
Маjко
Оно ж тривиально реализуется на каналах
Filipp
Berkus
то есть через каналы делать?
Filipp
Конечно
Berkus
окей, покурю mpsc, спасибо
Anonymous