Vlad
Котлин это какой-то подвид жавы?
Да, джава с синтаксисиом раста =D (шутка, ага)
Loo
он вас траллит посоны
Loo
астанавитесь
Alexander
Котлин это какой-то подвид жавы?
Сравнивать Java и Kotlin - это как сравнивать Pascal и Rust 😊
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
Блин, телеграм с одним чатом отнимает на общение больше времени, чем гиттер с полусотней - как вы здесь выживаете? 😊
Alexander
Хех, идея фикс "прочитать весь интернет" накрывается медным тазом.
Loo
время потраченное на чтение чата
Loo
себя окупает
Oleg
Как хокку прочитал
Loo
Как хокку прочитал
спасибо дружище. хоть кто то оценил
Loo
https://github.com/rickyhan/tectonic
Alexander
https://github.com/rickyhan/tectonic
«Stores one row of data in 13 bytes» - интересно, как они дошли до такой компрессии. Впрочем, я сильно не парился, у меня 24 байта с копейками на одну запись и, если когда-нибудь станет сильно много, пожму в .tgz или .tbz 😊
Loo
«Stores one row of data in 13 bytes» - интересно, как они дошли до такой компрессии. Впрочем, я сильно не парился, у меня 24 байта с копейками на одну запись и, если когда-нибудь станет сильно много, пожму в .tgz или .tbz 😊
вот "спека": /// File format for Dense Tick Format (DTF) /// /// /// File Spec: /// Offset 00: ([u8; 5]) magic value 0x4454469001 /// Offset 05: ([u8; 20]) Symbol /// Offset 25: (u64) number of records /// Offset 33: (u32) max ts /// Offset 80: -- records - see below -- /// /// /// Record Spec: /// Offset 81: bool for is_snapshot /// 1. if is true /// 4 bytes (u32): reference ts /// 2 bytes (u32): reference seq /// 2 bytes (u16): how many records between this snapshot and the next snapshot /// 2. record /// dts (u16): $ts - reference ts$, 2^16 = 65536 - ~65 seconds /// dseq (u8) $seq - reference seq$ , 2^8 = 256 /// is_trade: (u8): /// is_bid: (u8) /// price: (f32) /// size: (f32)
Alexander
Ага, как раз смотрю ))
Vlad
А это кому таргетится? Кто-то биржу пилит?
Alexander
Скорее тем, кто торгует
Alexander
Этих устраивают целочисленные таймстампы и лимит в 255 для dseq. При этом по целому байту выделили на булевы значения, хотя их можно запаковать в знак цены и объёма, всё-равно не используется.
Alexander
Alexander
Ха, обновил лису, упала вкладка. Обновил вкладку - упала лиса. Как мозилловцы заковыристо форсят перезапуск браузера )))
Loo
прям вообще топчик
Loo
скинь ссыль на которой упала вкладка
Alexander
В целом да, всё работает нормально. Падение вызвало именно обновление, видимо он пытается с какой-то .so-шкой работать, а тут такой облом.
Loo
аа. понятно
Loo
о мне тоже обнова прилетела. ща чекнем.
Loo
а не. не чекнем. не хочу в обход аура ставить
Alexander
Если всё ещё интересен адрес вкладки: https://www.tradingview.com/chart/JYOv1sq7/
Alexander
Хех, телеграм не умеет markdown Как вы тут выживаете? 😊
Vlad
Хех, телеграм не умеет markdown Как вы тут выживаете? 😊
Есть такое =( Но вообще какое-то очень ограниченное подмножество умеет И фрагменты кода без подсветки
Alexander
Пока только обратные кавычки видел, но даже синтаксисы языков не поддерживает в блочных
Alexander
Ну вот ещё полужирный и курсив, как вижу, можно добавить в список по итогу
Alexander
> цитаты великих Ладно, цитаты итак пойдёт, в русском есть соответствующие «знаки препинания» 😊
Anton
а это на файл
Нави
Всем, кто вчера вечером пытался помочь... Указать тип канала в функции следует так: fn func(my_recv: mpsc::Receiver<i32>) { } где i32 - тип данных, которые получает процесс в моём случае.
Нави
Всего ведь на всего... )))
Маjко
И вскод с рлс бы подсветил
Vladimir
Да ну, правда шоли?
Vladimir
тоесть Receiver<i32> какой нибудь
Vladimir
Всем, кто вчера вечером пытался помочь... Указать тип канала в функции следует так: fn func(my_recv: mpsc::Receiver<i32>) { } где i32 - тип данных, которые получает процесс в моём случае.
Vladimir
Для чего используют magic value?
Для того чтобы не парсить дичуху которая не относится к формату, предпологаю
Anton
Не, magic values обычно испльзуются как сигнатуры файлов
Anton
я спросонья решил что там строку описывают
Anton
Удивился, зачем в каждой записи
Anton
потом разул глаза
Anton
большинство приложений в линухе корректно обрабатывают когда например png c расширением jpg
Нави
тоесть Receiver<i32> какой нибудь
Видимо я не понял вчера про Receiver<i32>)
Anonymous
а в расте есть какое-нибудь встроенное решение для перевода A<B<C>> в B<A<C>>?
Anonymous
или эт без хкт нельзя, но у меня A = Vec, B = Result
Vladimir
или эт без хкт нельзя, но у меня A = Vec, B = Result
Встроенного прям для абстрактных типов нет
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
пам пааам паааам
Маjко
https://github.com/Property404/fetlang
> Confusing English-like syntax and unhelpful error messages Это можно прям на главную раста в список фич
Loo
хы хы
Berkus
чуваки, вопрос в расте есть какие-то каноничные методы или либы для observables или pubsub? что-то в стиле сигналов-слотов кутешных или Rx?
Berkus
внутрипроцессно надо если что
Маjко
Оно ж тривиально реализуется на каналах
Berkus
то есть через каналы делать?
Filipp
Конечно
Berkus
окей, покурю mpsc, спасибо